首頁  >  文章  >  後端開發  >  Golang 和 JS 怎麼交互?

Golang 和 JS 怎麼交互?

Guanhui
Guanhui原創
2020-06-13 10:39:594595瀏覽

Golang 和 JS 怎麼交互?

Golang 和 JS 怎麼互動?

1、使用AJAX技術,該技術可以在無需重新載入整個網頁的情況下,能夠更新部分網頁的技術;

  • 使用Ajax的最大優點,就是能在不更新整個頁面的前提下維護資料。這使得網路應用程式更為迅捷地回應使用者動作,並避免了在網路上發送那些沒有改變的訊息。

  • Ajax不需要任何瀏覽器插件,但需要使用者允許JavaScript在瀏覽器上執行。就像DHTML應用程式一樣,Ajax應用程式必須在眾多不同的瀏覽器和平台上經過嚴格的測試。隨著Ajax的成熟,一些簡化Ajax使用方法的程式庫也相繼問世。同樣,也出現了另一種輔助程式設計的技術,為那些不支援JavaScript的使用者提供替代功能。

  • 對應用Ajax最主要的批評就是,它可能會破壞瀏覽器的後退與加入收藏書籤功能。在動態更新頁面的情況下,使用者無法回到前一個頁面狀態,這是因為瀏覽器只能記下歷史記錄中的靜態頁面。一個被完整讀入的頁面與一個已經被動態修改過的頁面之間的可能差別非常微妙;用戶通常都希望單擊後退按鈕,就能夠取消他們的前一次操作,但是在Ajax應用程式中,卻無法這樣做。不過開發者已經想出了種種辦法來解決這個問題,HTML5之前的方法大多是在使用者點擊後退按鈕存取歷史記錄時,透過建立或使用隱藏的IFRAME來重現頁面上的變更。 (例如,當用戶在Google Maps中單擊後退時,它在一個隱藏的IFRAME中進行搜索,然後將搜索結果反映到Ajax元素上,以便將應用程式狀態恢復到當時的狀態)。

  • 關於無法將狀態加入收藏或書籤的問題,HTML5之前的一種方式是使用URL片段標識符(通常被稱為錨點,即URL中#後面的部分)來保持追踪,允許用戶回到指定的某個應用程式狀態。 (許多瀏覽器允許JavaScript動態更新錨點,這使得Ajax應用程式能夠在更新顯示內容的同時更新錨點。)HTML5以後可以直接操作瀏覽歷史,並以字串形式儲存網頁狀態,將網頁加入網頁收藏夾或書籤時狀態會隱形地保留。上述兩種方法也可以同時解決無法後退的問題。

  • 進行Ajax開發時,網路延遲-也就是使用者發出請求到伺服器發出回應之間的間隔-需要慎重考慮。如果不給予用戶明確的回應,沒有恰當的預讀數據,或者對XMLHttpRequest的不恰當處理,都會使用戶感到厭煩。通常的解決方案是,使用一個可視化的元件來告訴使用者係統正在進行後台操作並且正在讀取資料和內容。

2、使用WebSocket通訊技術,可以讓瀏覽器和伺服器之間提供了一個基於TCP連接的雙向通道,從而使交換資料更加簡單。

  • 較少的控制開銷。在連線建立後,伺服器和用戶端之間交換資料時,用於協定控制的資料包頭部相對較小。在不包含擴充的情況下,對於伺服器到客戶端的內容,此頭部大小只有2至10位元組(和封包長度有關);對於客戶端到伺服器的內容,此頭部還需要加上額外的4位元組的掩碼。相對於HTTP請求每次都要攜帶完整的頭部,此項開銷顯著減少了。

  • 更強的即時性。由於協定是全雙工的,所以伺服器可以隨時主動給客戶端下發資料。相對於HTTP請求需要等待客戶端發起請求服務端才能回應,延遲明顯更少;即使是和Comet等類似的長輪詢比較,其也能在短時間內更多次地傳遞資料。

  • 保持連線狀態。與HTTP不同的是,Websocket需要先建立連接,這就使得其成為一種有狀態的協議,之後通訊時可以省略部分狀態資訊。而HTTP請求可能需要在每個請求都攜帶狀態資訊(如身分認證等)。

  • 更好的二進位支援。 Websocket定義了二進位幀,相對HTTP,可以更輕鬆地處理二進位內容。

  • 可以支援擴充。 Websocket定義了擴展,使用者可以擴展協定、實作部分自訂的子協定。如部分瀏覽器支援壓縮等。

  • 更好的壓縮效果。相對於HTTP壓縮,Websocket在適當的擴展支援下,可以沿用先前內容的上下文,在傳遞類似的資料時,可以顯著地提高壓縮率。

推薦教學:《Golang

以上是Golang 和 JS 怎麼交互?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn