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 相关文章推荐
js简易namespace管理器 实例代码
Jun 21 Javascript
提取jquery的ready()方法单独使用示例
Mar 25 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
Aug 29 Javascript
怎样判断jQuery当前元素是隐藏还是显示
Nov 23 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
Dec 08 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
Jan 08 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
Jul 17 Javascript
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
vue自定义tap指令及tap事件的实现
Sep 18 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
Nov 13 Javascript
微信小程序事件 bindtap bindinput代码实例
Aug 26 Javascript
Javascript新手入门之字符串拼接与变量的应用
Dec 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
PHP怎样调用MSSQL的存储过程
2006/10/09 PHP
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
PHP5.4中json_encode中文转码的变化小结
2013/01/30 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
将list转换为json失败的原因
2013/12/17 Javascript
JavaScript中扩展Array contains方法实例
2020/08/23 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
jQuery 3 中的新增功能汇总介绍
2016/06/12 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
2018/03/29 Javascript
原生JavaScript实现remove()和recover()功能示例
2018/07/24 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
[02:30]DOTA2英雄基础教程 暗影恶魔
2013/12/17 DOTA
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
Python批量按比例缩小图片脚本分享
2015/05/21 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
python环境下安装opencv库的方法
2020/03/05 Python
python怎么调用自己的函数
2020/07/01 Python
HTML5 Canvas的事件处理介绍
2015/04/24 HTML / CSS
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
机关中层领导干部群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
英文自荐信范文
2015/03/25 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书