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中关于一个分号的崩溃示例
Nov 11 Javascript
理解javascript中的回调函数(callback)
Sep 02 Javascript
jQuery制作简单柱状图实例
Jan 28 Javascript
JavaScript中的replace()方法使用详解
Jun 06 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
Sep 05 Javascript
jquery实现自定义图片裁剪功能【推荐】
Mar 08 Javascript
使用vue.js写一个tab选项卡效果
Mar 25 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
Apr 13 jQuery
微信小程序scroll-view仿拼多多横向滑动滚动条
Apr 21 Javascript
浅谈webpack+react多页面开发终极架构
Nov 11 Javascript
vue router 用户登陆功能的实例代码
Apr 24 Javascript
jquery轻量级数字动画插件countUp.js使用详解
Oct 17 jQuery
使用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邮件类
2007/01/03 PHP
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
带密匙的php加密解密示例分享
2014/01/29 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
js获取select标签选中值的两种方式
2014/01/09 Javascript
jquery 通过name快速取值示例
2014/01/24 Javascript
jQuery向后台传入json格式数据的方法
2015/02/13 Javascript
JavaScript获得页面base标签中url的方法
2015/04/03 Javascript
理解Javascript的call、apply
2015/12/16 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
2016/04/20 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
2018/08/30 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
python的tkinter布局之简单的聊天窗口实现方法
2014/09/03 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
python 3.7.0 下pillow安装方法
2018/08/27 Python
利用python如何在前程无忧高效投递简历
2019/05/07 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
法国春天百货官网:Printemps.com
2020/06/29 全球购物
汉语专业应届生求职信
2013/10/01 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
土建施工员岗位职责
2015/04/11 职场文书
迎新年主持词
2015/07/06 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
Python实现socket库网络通信套接字
2021/06/04 Python
vue ref如何获取子组件属性值
2022/03/31 Vue.js