HTML5新增通訊相關兩個API,跨文件訊息傳送與WEB Sockets API,
跨文檔訊息傳輸功能,可以在不同網頁文檔,不同連接埠(跨網域情況下)進行訊息傳遞。
使用web sockets api 可以讓客戶端與伺服器端透過socket連接埠傳遞數據,這樣便可以使用資料推送技術。
跨文件訊息傳輸在之前我們若想跨域取得資訊會花很多功夫,現在只要取得網頁所在視窗物件實例變可以實現互相通訊。
首先要想從其他視窗接受發過來的訊息需要對其視窗物件進行監聽:
window.addevntListener(<span style="COLOR: #800000">'</span><span style="COLOR: #800000">message</span><span style="COLOR: #800000">'</span>, function () {}, <span style="COLOR: #0000ff">false</span>)
使用windows物件的postMessage方法向其他視窗發生訊息:
<span style="COLOR: #000000">otherWindow.postMessage(message, targetOrigin)第一个参数为发送文本,也可以是js对象(json)第二个参数为接收消息对象窗口的URL,可以使用通配符</span>
簡單範例:
程式碼如下:
程式碼如下:
程式碼如下:
程式碼如下:

在上述基礎上我們做一點修改,我們在子頁給出高寬按鈕,用於告訴父窗口怎麼改變iframe高寬:
複製程式碼
程式碼如下:
父層程式碼
子層程式碼
最後為我們的e截圖:
更靈活的運用,該api還可以更厲害的運用,我們可以傳遞函數名什麼的,反正可做很多事情了。
web sockets 通訊
web sockets 是HTML5提供的在web應用程式中客戶端與伺服器端之間進行非HTTP的通訊機制
他實現了http不容易實現的伺服器的資料推送等智慧通訊技術,因此受到了很高的關注。
使用web sockes api 可以在伺服器端與客戶端建立非HTTP的雙向連接,這個連接是即時的也是永久的,除非明確關閉
這表示當伺服器想要傳送資料給客戶端時,可以立即將資料推送到客戶瀏覽器中,無需重新建立連線。
只要客戶端有一個被打開的socket並且與伺服器建立了連接,伺服器就可以將資料推送到這個socket上,伺服器不再需要輪詢客戶端請求,化被動為主動。
web sockets api
程式碼
var webSocket = new WebSocket('ws://localhost:8005/socket');
url必須使用ws或wss(加密)作為頭,這個url設定好後,在javascript腳本中可以透過存取websocket物件的url來重新取得
通訊建立連線後,就可以雙向通訊了,使用websocket物件的send方法加json資料便可將任何形式資料傳往伺服器:
webSocket.send(msg);
透過onmessage事件來接收伺服器傳送過來資料:
webSocket.onmessage = function (e) {
var data = e.data;
};
透過onopern事件監聽socket開啟事件:
webSocket.onopen = function (e) { };
透過onclose監聽socket關閉事件:
webSocket.onclose = function (e) {};
透過webSocket.close()方法關閉socket連線;
通過readyState屬性獲取websocket對象狀態:
CONNECTION 0 正在連接
OPEN 1 已經連接
CLOSE 2 已經關閉
PS:,因為我不會配置伺服器區塊的socket相關,所以暫時不能進行測試,該問題留待二次學習時解決。
// 建立一個Socket實例
var socket = new WebSocket('ws://localhost:8080');
// 開啟Socket
socket.onopen = function(event) {
// 傳送一個初始化訊息
socket.send('I am the client and I'm listening!');
// 監聽訊息
socket.onmessage = function(event) {
console.log('Client received a message',event);
};
// 監聽Socket的關閉
socket.onclose = function(event) {
console.log('Client notified socket has closed',event);
};
// 關閉Socket....
//socket.close()
};

html5的div元素默认一行不可以放两个。div是一个块级元素,一个元素会独占一行,两个div默认无法在同一行显示;但可以通过给div元素添加“display:inline;”样式,将其转为行内元素,就可以实现多个div在同一行显示了。

html5中列表和表格的区别:1、表格主要是用于显示数据的,而列表主要是用于给数据进行布局;2、表格是使用table标签配合tr、td、th等标签进行定义的,列表是利用li标签配合ol、ul等标签进行定义的。

固定方法:1、使用header标签定义文档头部内容,并添加“position:fixed;top:0;”样式让其固定不动;2、使用footer标签定义尾部内容,并添加“position: fixed;bottom: 0;”样式让其固定不动。

html5中不支持的标签有:1、acronym,用于定义首字母缩写,可用abbr替代;2、basefont,可利用css样式替代;3、applet,可用object替代;4、dir,定义目录列表,可用ul替代;5、big,定义大号文本等等。

HTML5中画布标签是“<canvas>”。canvas标签用于图形的绘制,它只是一个矩形的图形容器,绘制图形必须通过脚本(通常是JavaScript)来完成;开发者可利用多种js方法来在canvas中绘制路径、盒、圆、字符以及添加图像等。

html5废弃了dir列表标签。dir标签被用来定义目录列表,一般和li标签配合使用,在dir标签对中通过li标签来设置列表项,语法“<dir><li>列表项值</li>...</dir>”。HTML5已经不支持dir,可使用ul标签取代。

3种取消方法:1、给td元素添加“border:none”无边框样式即可,语法“td{border:none}”。2、给td元素添加“border:0”样式,语法“td{border:0;}”,将td边框的宽度设置为0即可。3、给td元素添加“border:transparent”样式,语法“td{border:transparent;}”,将td边框的颜色设置为透明即可。

因为html5不基于SGML(标准通用置标语言),不需要对DTD进行引用,但是需要doctype来规范浏览器的行为,也即按照正常的方式来运行,因此html5只需要写doctype即可。“!DOCTYPE”是一种标准通用标记语言的文档类型声明,用于告诉浏览器编写页面所用的标记的版本。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境