JS常用知识点整理


Posted in Javascript onJanuary 21, 2017

1.CORS

CORS(Corss-Origin Resource Sharing,跨资源共享),基本思想是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应的成功或失败。即给请求附加一个额外的Origin头部,其中包含请求页面的源信息(协议、域名和端口),以便服务器根据这个头部决定是否给予响应。

2.document.domain

将页面的document.domain设置为相同的值,页面间可以互相访问对方的JavaScript对象。

注意:

不能将值设置为URL中不包含的域;

松散的域名不能再设置为紧绷的域名。

3.图像Ping

var img=new Image();
img.onload=img.onerror=function(){
... ...
}
img.src="url?name=value";

请求数据通过查询字符串的形式发送,响应可以是任意内容,通常是像素图或204响应。

图像Ping最常用于跟踪用户点击页面或动态广告曝光次数。

缺点:

只能发送GET请求;

无法访问服务器的响应文本,只能用于浏览器与服务器间的单向通信。

4.Jsonp

var script=document.createElement("script");
script.src="url?callback=handleResponse";
document.body.insertBefore(script,document.body.firstChild);

JSONP由两部分组成:回调函数和数据

回调函数是接收到响应时应该在页面中调用的函数,其名字一般在请求中指定。

数据是传入回调函数中的JSON数据。

优点:

能够直接访问响应文本,可用于浏览器与服务器间的双向通信。

缺点:

JSONP从其他域中加载代码执行,其他域可能不安全;

难以确定JSONP请求是否失败。

5.Comet

Comet可实现服务器向浏览器推送数据。

Comet是实现方式:长轮询和流

短轮询即浏览器定时向服务器发送请求,看有没有数据更新。

长轮询即浏览器向服务器发送一个请求,然后服务器一直保持连接打开,直到有数据可发送。发送完数据后,浏览器关闭连接,随即又向服务器发起一个新请求。其优点是所有浏览器都支持,使用XHR对象和setTimeout()即可实现。

流即浏览器向服务器发送一个请求,而服务器保持连接打开,然后周期性地向浏览器发送数据,页面的整个生命周期内只使用一个HTTP连接。

6.WebSocket

WebSocket可在一个单独的持久连接上提供全双工、双向通信。

WebSocket使用自定义协议,未加密的连接时ws://;加密的链接是wss://。

var webSocket=new WebSocket("ws://");
webSocket.send(message);
webSocket.onmessage=function(event){
var data=event.data;
... ....
}

注意:

必须给WebSocket构造函数传入绝对URL;

WebSocket可以打开任何站点的连接,是否会与某个域中的页面通信,完全取决于服务器;

WebSocket只能发送纯文本数据,对于复杂的数据结构,在发送之前必须进行序列化JSON.stringify(message))。

优点:

在客户端和服务器之间发送非常少的数据,减少字节开销。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JQuery 遮罩层实现(mask)实现代码
Jan 09 Javascript
jquery isEmptyObject判断是否为空对象的函数
Feb 14 Javascript
基于jquery的blockui插件显示弹出层
Apr 14 Javascript
用Jquery实现滚动新闻
Feb 12 Javascript
javascript Deferred和递归次数限制实例
Oct 21 Javascript
JavaScript学习笔记之Function对象
Jan 22 Javascript
浅谈javascript中的 “ && ” 和 “ || ”
Feb 02 Javascript
jQuery实用密码强度检测
Mar 02 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
Dec 19 Javascript
详解vuex commit保存数据技巧
Dec 25 Javascript
vue 实现基础组件的自动化全局注册
Dec 25 Vue.js
JavaScript的function函数详细介绍
Nov 20 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
Jan 21 #Javascript
原生js实现可拖动的登录框效果
Jan 21 #Javascript
微信小程序 WebSocket详解及应用
Jan 21 #Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
Jan 21 #Javascript
遍历json获得数据的几种方法小结
Jan 21 #Javascript
新闻上下滚动jquery 超简洁(必看篇)
Jan 21 #Javascript
vue2.0父子组件及非父子组件之间的通信方法
Jan 21 #Javascript
You might like
关于js和php对url编码的处理方法
2014/03/04 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
JavaScript 面向对象的 私有成员和公开成员
2010/05/13 Javascript
基于jquery tab切换(防止页面刷新)
2012/05/23 Javascript
有关于JS构造函数的重载和工厂方法
2013/04/07 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
基于 D3.js 绘制动态进度条的实例详解
2018/02/26 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
Vue全局分页组件的实现代码
2018/08/10 Javascript
基于vue-router 多级路由redirect 重定向的问题
2018/09/03 Javascript
使用React-Router实现前端路由鉴权的示例代码
2020/07/26 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
JS实现点击掉落特效
2021/01/29 Javascript
Python监控主机是否存活并以邮件报警
2015/09/22 Python
深入解答关于Python的11道基本面试题
2017/04/01 Python
Linux系统(CentOS)下python2.7.10安装
2018/09/26 Python
OpenCV-Python 摄像头实时检测人脸代码实例
2019/04/30 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
HTML5 语义化结构化规范化
2008/10/17 HTML / CSS
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
村委会换届选举方案
2014/05/03 职场文书
如何书写授权委托书?
2019/06/25 职场文书
导游词之澳门妈祖庙
2019/12/19 职场文书
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis