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 浏览器检测代码精简版
Mar 04 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
Aug 02 Javascript
jQuery中选择器小问题(新人难免遇到)
Mar 31 Javascript
JavaScript Array对象扩展indexOf()方法
May 09 Javascript
基于jQuery实现的旋转彩圈实例
Jun 26 Javascript
JavaScript创建对象_动力节点Java学院整理
Jun 27 Javascript
基于原生js运动方式关键点的总结(推荐)
Oct 01 Javascript
vue的token刷新处理的方法
Jul 17 Javascript
vue+elementui 对话框取消 表单验证重置示例
Oct 29 Javascript
javascript实现时间日期的格式化的方法汇总
Aug 06 Javascript
Node.JS如何实现JWT原理
Sep 18 Javascript
Openlayers实现点闪烁扩散效果
Sep 24 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
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
详解PHP中的Traits
2015/07/29 PHP
PHP实现动态执行代码的方法
2016/03/25 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
Firefox div高度自适应
2009/04/28 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
2020/05/12 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
vue将data恢复到初始状态 && 重新渲染组件实例
2020/09/04 Javascript
[01:35]2018完美盛典章节片——共竞
2018/12/17 DOTA
python迭代器的使用方法实例
2013/11/21 Python
利用Python爬取可用的代理IP
2016/08/18 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
纯css3实现宠物小鸡实例代码
2018/10/08 HTML / CSS
Clarria化妆品官方网站:购买天然和有机化妆品系列
2018/04/08 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
中学生团员自我评价分享
2013/12/07 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
受资助学生感谢信
2015/01/21 职场文书
置业顾问岗位职责
2015/02/09 职场文书
党支部考察意见范文
2015/06/02 职场文书
邹越演讲观后感
2015/06/15 职场文书
python通过函数名调用函数的几种方法总结
2021/06/07 Python