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 相关文章推荐
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
Apr 12 Javascript
使用JavaScript switch case 另类写法
Mar 14 Javascript
基于jquery的固定表头和列头的代码
May 03 Javascript
JavaScript 更严格的相等 [译]
Sep 20 Javascript
JS修改css样式style浅谈
May 06 Javascript
Table冻结表头示例代码
Aug 20 Javascript
JQuery的ON()方法支持的所有事件罗列
Feb 28 Javascript
javascript结合CSS实现苹果开关按钮特效
Apr 07 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
Jan 25 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
Sep 19 Javascript
JS实现左边列表移到到右边列表功能
Mar 28 Javascript
ES6的循环与可迭代对象示例详解
Jan 31 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的宝库目录--PEAR
2006/10/09 PHP
PHP实现的功能是显示8条基色色带
2006/10/09 PHP
PHP 和 MySQL 基础教程(三)
2006/10/09 PHP
几个php应用技巧
2008/03/27 PHP
PHP 无限级分类
2017/05/04 PHP
javascript CSS画图之基础篇
2009/07/29 Javascript
Jquery提交表单 Form.js官方插件介绍
2012/03/01 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
深入解析JavaScript中的立即执行函数
2016/05/21 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
2018/11/29 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
2020/07/26 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
Javascript异步流程控制之串行执行详解
2020/09/27 Javascript
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
Win10环境python3.7安装dlib模块趟过的坑
2019/08/01 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
2020/03/25 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年职称评定工作总结
2014/11/26 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS