在所有 Web 浏览器中使用 Web 套接字会使 Ajax 过时吗?
因为如果我可以使用 Web 套接字来实时获取数据和更新数据,为什么还需要 ajax?即使我在应用程序启动时使用 ajax 只获取一次数据,我仍然可能想看看该数据在一段时间后是否发生了变化。
Web 套接字是否可以跨域或只能连接到同源?
WebSockets 不会使 AJAX 完全过时,并且 WebSockets 可以跨域。
AJAX
AJAX 机制可以与普通 Web 服务器一起使用。在最基本的层面上,AJAX 只是网页发出 HTTP 请求的一种方式。 WebSockets 是一个低得多的级别协议,需要 WebSockets 服务器(内置于 Web 服务器、独立的或从 Web 服务器代理到独立服务器)。
对于 WebSocket,帧和有效负载由应用程序确定。您可以在客户端和服务器之间来回发送 HTML/XML/JSON,但您并不被迫这样做。AJAX 是 HTTP。 WebSockets 有 HTTP 友好的握手,但是WebSocket 不是 HTTP。 WebSockets 是一种双向协议,与 HTTP 相比,它更接近于原始套接字(故意如此)。 WebSockets 有效负载数据在当前版本的标准中采用 UTF-8 编码,但在未来版本中可能会更改/扩展。
因此,即使在所有客户端都原生支持 WebSocket 的世界中,AJAX 类型请求也可能永远有一席之地。 WebSockets 试图解决 AJAX 不具备或能力有限的情况(因为 WebSockets 是双向的且开销低得多)。但 WebSocket 并不能取代 AJAX 的所有功能。
跨域
Yes、WebSockets支持跨域。设置连接的初始握手会传达原始策略信息。维基百科页面显示了典型握手的示例:http://en.wikipedia.org/wiki/WebSockets http://en.wikipedia.org/wiki/WebSockets
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)