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 相关文章推荐
JavaScript 实现模态对话框 源代码大全
May 02 Javascript
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
Mar 23 Javascript
js操作模态窗口及父子窗口间相互传值示例
Jun 09 Javascript
一个获取第n个元素节点的js函数
Sep 02 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
Aug 06 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
Aug 17 Javascript
JavaScript 数组的深度复制解析
Nov 02 Javascript
AngularJS路由实现页面跳转实例
Mar 03 Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
Apr 23 Javascript
小程序实现图片移动缩放效果
May 26 Javascript
js模拟实现百度搜索
Jun 28 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
Feb 23 Vue.js
使用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
php email邮箱正则
2008/10/08 PHP
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
javascript延时加载之defer测试
2012/12/28 Javascript
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
JavaScript中的Math.LN2属性用法详解
2015/06/12 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
2016/01/10 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
layer弹出层全屏及关闭方法
2018/08/17 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
vant中的toast层级改变操作
2020/11/04 Javascript
Python中os和shutil模块实用方法集锦
2014/05/13 Python
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
python数据结构之图的实现方法
2015/07/08 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
python leetcode 字符串相乘实例详解
2018/09/03 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
python 表格打印代码实例解析
2019/10/12 Python
python模块导入的方法
2019/10/24 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
使用HTML5 Canvas API中的clip()方法裁剪区域图像
2016/03/25 HTML / CSS
VICHY薇姿英国官网:全球专业敏感肌护肤领先品牌
2017/07/04 全球购物
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
党员教师四风自我剖析材料
2014/09/30 职场文书
教师年度个人总结
2015/02/11 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书
Python实现双向链表基本操作
2022/05/25 Python