名站网址导航名站网址导航小编为爱好网页hTML5的朋友提供关于网页hTML5的相关知识。
- 本篇文章的具体介绍如下
WebSockets
Web Sockets 是用于 Web 应用程序的新一代双向通信技术,运行在单一套接字之上,它通过 JavaScript 接口暴漏在 网页hTML5教程 兼容的浏览器中。
一旦取得 Web 服务器上的 Web Socket 连接之后,就可以通过相关调用 send() 实用具体的方法从浏览器发送数据到服务器上,通过 onmessage 事件处理程序从服务器接收数据到浏览器中。
下面是创见一个新的 WebSocket 对象的 API。
JavaScript Code 复制内容到剪贴板- var Socket = new WebSocket(url, [protocal] );
第一个具体参数 url 用于指定要连接的 URL。第二个属性 - 端口是可选的,如果提供,就会指定一个服务器必须支持连接成功的子协议。
WebSocket 属性
下面是 WebSocket 对象的属性。假定咱们已经创见了上述的 Socket 对象:
属性 | 描述 |
---|---|
Socket.readyState | 只读属性readyState表示连接的状态。有以下取值:
|
Socket.bufferedAmount | 只读属性bufferedAmount表示已经使用 send() 实用具体的方法排队的 URF-8 文本字节数。 |
WebSocket 事件
下面是 WebSocket 对象相关的事件。假定咱们已经创见了上述的 Socket 对象:
事件 | 事件处理程序 | 描述 |
---|---|---|
open | Socket.onopen | 建立 socket 连接时触发这个事件。 |
message | Socket.onmessage | 客户端从服务器接收数据时触发。 |
error | Socket.onerror | 连接发生错误时触发。 |
close | Socket.onclose | 连接被关闭时触发。 |
WebSocket 实用具体的方法
下面是 WebSocket 对象相关的实用具体的方法。假定咱们已经创见了上述的 Socket 对象:
实用具体的方法 | 描述 |
---|---|
Socket.send() | send(data) 实用具体的方法使用连接传输数据。 |
Socket.close() | close() 实用具体的方法用于终止任何现有连接。 |
服务器推送事件
传统的 Web 应用程序生成发送到 Web 服务器端的事件。比如,点击一个链接会从服务器请求一个新页面。
这种从 Web 浏览器到 Web 服务器的时间类型可以称作客服端事件。
随着 网页hTML5教程 的出现,WhATWG Web Applications 1.0 引入了一个从 Web 服务器到 Web 浏览器的事件流,被称作服务器推送事件(SSE)。使用 SSE 可以不停的将 DOM 事件推送到用户的浏览器中。
这个事件流实用具体的方法会打开一个到服务器的持久连接,新消息可用时发送数据到客户端,从而不再需要持续的轮询。
SSE Web 应用程序
要在 Web 应用程序中使用服务器推送事件,咱们需要给文档添加一个 <eventsource>网页元素。
<eventsource> 网页元素的 src 属性应该指向一个 URL,这个 URL 应该提供一个 hTTP 持久连接用于发送包含事件的数据流。
这个 URL 将会指向一个持续发送事件数据的 PhP,PERL 或者任意 Python 脚本。下面是一个简单的期望获得服务器时间的 Web 应用程序示例。
XML/网页hTML Code复制内容到剪贴板- <!DOCTYPE 网页hTML>
- <html>
- <head>
- <script type="text/javascript">
- /* Define event handling logic here */
- </script>
- </head>
- <body>
- <div id="sse">
- <eventsource src="/cgi-bin/ticker.cgi" />
- </div>
- <div id="ticker">
- <TIME>
- </div>
- </body>
- </html>
SSE 服务器端脚本
服务器端脚本应该发送 Content-type 头指定类型为 text/event-stream,如下所示:
设置 Content-type 之后,服务器端脚本将发送一个后面紧跟事件名称的 Event: 网页文章标签。下面的示例将会发送一个以换行符结束的 Server-Time 作为事件名称。
最后一步是使用 Data: 网页文章标签发送事件数据,紧随其后的是以换行符结束的整数字符串值,如下所示:
print "Data: $time\n";
下面是用 perl 编写的完整 ticker.cgi:
#!/usr/bin/perl
print "Content-Type: text/event-stream\n\n";
while(true){
print "Event: server-time\n";
$time = localtime();
print "Data: $time\n";
sleep(5);
处理服务器推送事件
让咱们修改一下咱们的 Web 应用程序来处理服务器推送时间。下面是最终示例:
- <!DOCTYPE 网页hTML>
- <html>
- <head>
- <script type="text/javascript">
- document.getElementsByTagName("eventsource")[0].
- addEventListener("server-time", eventhandler, false);
- function eventhandler(event)
- {
- // Alert time sent by the server
- document.querySelector('#ticker').inner网页hTML = event.data;
- }
- </script>
- </head>
- <body>
- <div id="sse">
- <eventsource src="/cgi-bin/ticker.cgi" />
- </div>
- <div id="ticker" name="ticker">
- [TIME]
- </div>
- </body>
- </html>
在测试服务器推送事件之前,建议您确保您的 Web 浏览器支持这一概念。
关于网页hTML5的相关知识就说到这里希望可以帮助朋友们。,网页hTML5,WebSocket,服务器推送解析网页hTML5教程的存储功能和web SQL的相关操作实用具体的方法
每个 hTTP 请求中都包含 Cookies,从而导致传输相同的数据减缓咱们的 Web 应用程序。