移除阻止呈現的JavaScript,移除javascript

來源:互聯網
上載者:User

移除阻止呈現的JavaScript,移除javascript

個人原創網址:http://www.phpthinking.com/archives/443

瀏覽器必須先解析網頁,然後才能將其呈現給使用者。如果瀏覽器在解析過程中遇到系統阻止的外部指令碼,必須停止解析並且下載該JavaScript。每次遇到這種情況時,瀏覽器都會增加一個網路往返過程,這樣就會導致首次呈現網頁的時間延遲。

建議

建議您以內嵌方式處理呈現首屏地區所需的JavaScript,並讓為網頁添加其他功能所需的JavaScript消極式載入,直到首屏內容發送完畢為止。請注意,要通過這種方式縮短載入時間,您還必須最佳化CSS發送過程。

內嵌較小的JavaScript

如果外部指令碼較小,您可以直接將它們添加到HTML文檔。通過這種方式內嵌較小檔案可讓瀏覽器繼續呈現網頁。例如,如果HTML文檔如下所示:

<html>  <head>    <scripttype="text/javascript"src="small.js"></script>  </head>  <body>    <div>      Hello, world!    </div>  </body></html>

資源small.js如下所示:

  /* contents of a small JavaScript file */

那麼,您即可按如下這樣內嵌指令碼:

<html>  <head>    <scripttype="text/javascript">      /* contents of a small JavaScript file */    </script>  </head>  <body>    <div>      Hello, world!    </div>  </body></html>

這樣,您就可以將small.js內嵌在HTML文檔中,從而消除對它的外部請求。

消極式載入JavaScript

為防止JavaScript阻止網頁載入,建議您在載入JavaScript時使用HTML非同步屬性。例如:

<script async src="my.js">

如果您的JavaScript資源使用的是document.write,則使用非同步載入就會不安全。我們建議您重寫使用document.write的指令碼,以改用其他技術。

此外,非同步載入JavaScript時,如果您的網頁載入互相依賴的指令碼,請務必謹慎,以確保您的應用以合適的依賴順序載入指令碼。

常見問題集
如果我使用的是JavaScript庫(例如jQuery),該怎麼做?
很多JavaScript庫(例如jQuery)都可用來增強網頁,從而為網頁增添額外的互動性、動畫和其他效果。不過,這些行為大多可在首屏內容呈現後再安全添加。請考慮是否可以將此類JavaScript的執行和載入延遲到網頁載入後。
如果我使用JavaScript架構來構造網頁,該如何操作?
如果網頁內容由用戶端JavaScript構造,那麼您應考慮一下是否可以嵌入相關的JavaScript模組,從而避免產生額外的網路往返過程。同樣,利用伺服器端呈現可顯著提升首次網頁載入的效果,方式如下:在伺服器上呈現JS模板,並將結果內嵌到HTML,然後在應用載入後使用用戶端模板。

怎使用JavaScript阻止關閉視窗

很多時候,在瀏覽網頁時,我們需要考慮使用者不小時關閉視窗的情況,特別是當使用者有很重要的資料還沒有儲存, 我們的程式有必要對使用者進行提醒。這可以通過重寫window.onbeforeunload()方法來實現,見如下例子:<script language="javascript" type="text/javascript"window.onbeforeunload=function(event){return "Hello";}</script當使用者按了關閉按鈕時,便會彈出以下視窗,其中"Hello"是傳回值,當你按了取消時是不會關閉頁面的,只有按了確定才會。傳回值是少不了的,哪怕是空,否則不會作任何提示便關閉頁面。其實只要是調用了window.close()都會執行onbeforeunload()函數,由此我們可以知道,按關閉按鈕會執行window.close()函數,而window.close()裡面也調用了window.onbeforeunload()函數。
 
javascript 移除table中td的問題

alert(tds[1].innerHTML);
trs.removeChild(tds[1]);
alert(tds[0].innerHTML);
trs.removeChild(tds[0]);

中間加這兩行,看看結果
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.