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新的事件绑定机制on()示例应用
Jul 18 Javascript
JavaScript 封装一个tab效果源码分享
Sep 15 Javascript
JQuery validate插件验证用户注册信息
May 11 Javascript
浅谈JavaScript 浏览器对象
Jun 03 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
Jan 20 Javascript
ES6新特性三: Generator(生成器)函数详解
Apr 21 Javascript
Javascript实现的StopWatch功能示例
Jun 13 Javascript
vue生命周期实例小结
Aug 15 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
Oct 12 Javascript
详解Vue组件之间通信的七种方式
Apr 14 Javascript
mock.js模拟前后台交互
Jul 25 Javascript
vue实现鼠标经过动画
Oct 16 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 小乘法表实现代码
2009/07/16 PHP
PHP执行linux系统命令的常用函数使用说明
2010/04/27 PHP
php函数之子字符串替换 str_replace
2011/03/23 PHP
php使用function_exists判断函数可用的方法
2014/11/19 PHP
Yii1.1中通过Sql查询进行的分页操作方法
2017/03/16 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
JS中图片缓冲loading技术的实例代码
2013/08/29 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
EasyUI学习之DataGird分页显示数据
2016/12/29 Javascript
Vue组件开发初探
2017/02/14 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
微信小程序实现左侧滑栏过程解析
2019/08/26 Javascript
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
PyQt5实现下载进度条效果
2018/04/19 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
Nike德国官网:Nike.com (DE)
2018/11/13 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
西安交大自主招生自荐信
2014/01/27 职场文书
《一本男孩子必读的书》教学反思
2014/02/19 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
期末个人总结范文
2015/02/13 职场文书
入党自荐书范文
2015/03/05 职场文书
2016年庆祝六一儿童节活动总结
2016/04/06 职场文书
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS