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 相关文章推荐
JavaScript中的正则表达式简明总结
Apr 04 Javascript
使用jQuery判断IE浏览器版本的代码
Jun 14 Javascript
js仿苹果iwatch外观的计时器代码分享
Aug 26 Javascript
最简单的tab切换实例代码
May 13 Javascript
bootstrap table配置参数例子
Jan 05 Javascript
手写简单的jQuery雪花飘落效果实例
Apr 22 jQuery
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
Nov 08 Javascript
微信小程序实现随机验证码功能
Dec 20 Javascript
详解async/await 异步应用的常用场景
May 13 Javascript
浅谈一种让小程序支持JSX语法的新思路
Jun 16 Javascript
如何实现一个简易版的vuex持久化工具
Sep 11 Javascript
Vue实现多标签选择器
Nov 28 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
菜鸟修复电子管记
2021/03/02 无线电
学习php中的正则表达式
2014/08/17 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
PHP实现类似题库抽题效果
2018/08/16 PHP
PHP使用Redis实现Session共享的实现示例
2019/05/12 PHP
img的onload的另类用法
2008/01/10 Javascript
js与jQuery 获取父窗、子窗的iframe
2013/12/20 Javascript
JavaScript使用循环和分割来替换和删除元素实例
2014/10/13 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
跟我学习javascript的严格模式
2015/11/16 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
详解自动生成博客目录案例
2016/12/09 Javascript
canvas实现探照灯效果
2017/02/07 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
基于JavaScript实现的希尔排序算法分析
2017/04/14 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
Vue三种常用传值示例(父传子、子传父、非父子)
2018/07/24 Javascript
Vue父子组件双向绑定传值的实现方法
2018/07/31 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
vue之延时刷新实例
2019/11/14 Javascript
详解Vue之事件处理
2020/07/10 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
Python简单网络编程示例【客户端与服务端】
2017/05/26 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
建筑装饰学院室内设计专业个人自我评价
2013/12/07 职场文书
完美主义个人的自我评价
2014/02/17 职场文书
房地产促销活动方案
2014/03/01 职场文书
开工仪式主持词
2014/03/20 职场文书
网络研修心得体会
2016/01/08 职场文书