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 相关文章推荐
asp 取文本框名称代码
Dec 02 Javascript
js浮点数保留两位小数点示例代码(四舍五入)
Dec 26 Javascript
实例讲解JS中数组Array的操作方法
May 09 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
Nov 13 Javascript
Underscore.js 1.3.3 中文注释翻译说明
Jun 25 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
May 28 Javascript
jQuery基本选择器和层次选择器学习使用
Feb 27 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
Sep 18 Javascript
vue.js  父向子组件传参的实例代码
Oct 29 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
Jul 19 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
Jun 04 Javascript
解决vant-UI库修改样式无效的问题
Nov 03 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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
解析PHP中的unset究竟会不会释放内存
2013/07/18 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
JavaScript表单通过正则表达式验证电话号码
2014/03/14 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
js实现圆盘记速表
2015/08/03 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
jquery 判断是否支持Placeholder属性的方法
2017/02/07 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
2017/06/18 Javascript
JS判断微信扫码的方法
2017/08/07 Javascript
react native 文字轮播的实现示例
2018/07/27 Javascript
使用typescript构建Vue应用的实现
2019/08/26 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
Vue的Options用法说明
2020/08/14 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
python开根号实例讲解
2020/08/30 Python
用python写PDF转换器的实现
2020/10/29 Python
日本最大的旅游网站:Rakuten Travel(乐天旅游)
2018/08/02 全球购物
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
法律专业应届本科毕业生求职信
2013/10/25 职场文书
医院辞职信范文
2014/01/17 职场文书
不忘国耻振兴中华演讲稿
2014/05/14 职场文书
禁烟标语大全
2014/06/11 职场文书
民主评议党员自我鉴定
2014/10/21 职场文书
高老头读书笔记
2015/06/30 职场文书
队名及霸气口号大全
2015/12/25 职场文书
怎么禁用Windows 11快照布局? win11不使用快照布局的技巧
2021/11/21 数码科技
python中mongodb包操作数据库
2022/04/19 Python