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 相关文章推荐
潜说js对象和数组
May 25 Javascript
js创建子窗口并且回传值示例代码
Jul 02 Javascript
对于this和$(this)的个人理解
Sep 08 Javascript
jquery中EasyUI实现同步树
Mar 01 Javascript
angular.js 路由及页面传参示例
Feb 24 Javascript
select2 ajax 设置默认值,初始值的方法
Aug 09 Javascript
vue实现键盘输入支付密码功能
Aug 18 Javascript
Vue项目安装插件并保存
Jan 28 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
May 15 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
Aug 02 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
Sep 05 Javascript
vue 验证两次输入的密码是否一致的方法示例
Sep 29 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常用函数 推荐收藏保存
2010/02/21 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
PHP运行模式的深入理解
2013/06/03 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
详细解读AngularJS中的表单验证编程
2015/06/19 Javascript
js焦点文字滚动效果代码分享
2015/08/25 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
layer弹出层扩展主题的方法
2019/09/11 Javascript
Vue中computed及watch区别实例解析
2020/08/01 Javascript
python 编程之twisted详解及简单实例
2017/01/28 Python
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
PyQt实现界面翻转切换效果
2018/04/20 Python
使用python实现数组、链表、队列、栈的方法
2019/12/20 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
联想香港官方网站及网店:Lenovo香港
2018/04/13 全球购物
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
应届生英语教师求职信
2013/11/05 职场文书
肯尼迪就职演说稿
2013/12/31 职场文书
大学生学习党课思想汇报
2014/01/03 职场文书
俄语专业职业生涯规划
2014/02/26 职场文书
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
2015年信息化建设工作总结
2015/07/23 职场文书
2015领导干部廉洁自律工作总结
2015/07/23 职场文书
优质服务标语口号
2015/12/26 职场文书
python glom模块的使用简介
2021/04/13 Python