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 Event学习第六章 事件的访问
Feb 07 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
Feb 11 Javascript
Firefox中beforeunload事件的实现缺陷浅析
May 03 Javascript
js创建表单元素并使用submit进行提交
Aug 14 Javascript
原生JS实现旋转木马式图片轮播插件
Apr 25 Javascript
vue.js入门教程之基础语法小结
Sep 01 Javascript
BootStrap与Select2使用小结
Feb 17 Javascript
php 修改密码实现代码
May 24 Javascript
Js实现京东无延迟菜单效果实例(demo)
Jun 02 Javascript
bootstrap switch开关组件使用方法详解
Aug 22 Javascript
JS实现匀加速与匀减速运动的方法示例
Sep 04 Javascript
jQuery ajax调用webservice注意事项
Oct 08 jQuery
使用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的正则处理函数总结分析
2008/06/20 PHP
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
2017/09/30 PHP
javascript中"/"运算符常见错误
2010/10/13 Javascript
使用JS 清空File控件的路径值
2013/07/08 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
2015/09/26 Javascript
js点击按钮实现带遮罩层的弹出视频效果
2015/12/19 Javascript
使用Bootstrap美化按钮实例代码(demo)
2017/02/03 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
JavaScript实现区块链
2018/03/14 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
Python中分数的相关使用教程
2015/03/30 Python
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
Python提取特定时间段内数据的方法实例
2019/04/01 Python
如何提高python 中for循环的效率
2020/04/15 Python
红色连衣裙精品店:Red Dress Boutique
2018/08/11 全球购物
Myprotein亚太地区:欧洲第一在线运动营养品牌
2020/12/20 全球购物
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
信息专业学生学习的自我评价
2014/02/17 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
语文教育专业求职信
2014/06/28 职场文书
2014年人大工作总结
2014/12/10 职场文书
springcloud之Feign超时问题的解决
2021/06/24 Java/Android
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript
navicat 连接Ubuntu虚拟机的mysql的操作方法
2022/04/02 MySQL
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫