欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JS常用知识点整理

程序员文章站 2023-11-14 21:11:28
1.cors cors(corss-origin resource sharing,跨资源共享),基本思想是使用自定义的http头部让浏览器与服务器进行沟通,从而决定请求...

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))。

优点:

在客户端和服务器之间发送非常少的数据,减少字节开销。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!