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 UI震动效果实现原理及步骤
Feb 04 Javascript
jquery实现邮箱自动补全功能示例分享
Feb 17 Javascript
vue-router单页面路由
Jun 17 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
Jul 22 jQuery
基于vue的换肤功能的示例代码
Oct 10 Javascript
微信小程序实现省市区三级地址选择
Jun 21 Javascript
js 实现ajax发送步骤过程详解
Jul 25 Javascript
关于layui表单中按钮自动提交的解决方法
Sep 09 Javascript
Typescript的三种运行方式(小结)
Sep 18 Javascript
JS面向对象编程实现的Tab选项卡案例详解
Mar 03 Javascript
使用node-media-server搭建一个简易的流媒体服务器
Jan 20 Javascript
Javascript使用integrity属性进行安全验证
Nov 07 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可逆加密解密算法实例代码
2014/01/21 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
php中分页及SqlHelper类用法实例
2017/01/12 PHP
PHP实现非阻塞模式的方法分析
2018/07/26 PHP
php原生数据库分页的代码实例
2019/02/18 PHP
jquery dialog键盘事件代码
2010/08/01 Javascript
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
如何提高数据访问速度
2016/12/26 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
ES6入门教程之Class和Module详解
2017/05/17 Javascript
微信小程序 http请求的session管理
2017/06/07 Javascript
浅谈原生JS中的延迟脚本和异步脚本
2017/07/12 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
python 实现让字典的value 成为列表
2019/12/16 Python
Python类的动态绑定实现原理
2020/03/21 Python
pytorch加载自己的图像数据集实例
2020/07/07 Python
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
html5.2 dialog简介详解
2018/02/27 HTML / CSS
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
运动会获奖感言
2014/02/11 职场文书
信用卡工资证明格式
2014/09/13 职场文书
亲戚关系证明
2015/06/24 职场文书
工作简报格式范文
2015/07/21 职场文书
大学组织委员竞选稿
2015/11/21 职场文书
商业计划书格式、范文
2019/03/21 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书