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模拟按下回车实现代码
Sep 20 Javascript
IE下使用cloneNode注意事项分享
Nov 22 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
Aug 07 Javascript
jquery()函数的三种语法介绍
Oct 09 Javascript
JavaScript入门基础
Aug 12 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
Sep 27 Javascript
js调用webservice构造SOAP进行身份验证
Apr 27 Javascript
解析JavaScript中的字符串类型与字符编码支持
Jun 24 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
Sep 17 Javascript
JS+H5 Canvas实现时钟效果
Jul 20 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
Nov 13 Javascript
如何在Node和浏览器控制台中打印彩色文字
Jan 09 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文本数据库的搜索方法
2006/10/09 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
2012/07/15 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
Destoon实现多表查询示例
2014/08/21 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
Javascript 按位与运算符 (&)使用介绍
2014/02/04 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
ES6中的Promise代码详解
2017/10/09 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
gearman的安装启动及python API使用实例
2014/07/08 Python
详解Python的Django框架中的模版相关知识
2015/07/15 Python
Python变量和数据类型详解
2017/02/15 Python
Python编程实现从字典中提取子集的方法分析
2018/02/09 Python
详解js文件通过python访问数据库方法
2019/03/03 Python
如何用python批量调整视频声音
2020/12/22 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
python程序实现BTC(比特币)挖矿的完整代码
2021/01/20 Python
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
家长对学生的评语
2014/04/18 职场文书
好书伴我成长演讲稿
2014/05/14 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
2015年社区党务工作总结
2015/04/21 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python
python - timeit 时间模块
2021/04/06 Python
《战锤40K:暗潮》跳票至9月 公布新宣传片
2022/04/03 其他游戏
IDEA 2022 Translation 未知错误 翻译文档失败
2022/04/24 Java/Android