2015-06-20 82 views
-2

目標:從服務器開始發送數據之後儘快開始,在加載過程中儘可能早地開始瀏覽器加載頁面的時間。使用Ajax定時瀏覽器

上下文:存儲Web性能數據的現有腳本集的新功能。現有的大多數應用程序都在服務器端,新功能用於客戶端。

這是我需要幫助的地方。 我尋找最早的事件,使用這樣的腳本,這是使用

<script src="//code.jquery.com/jquery-1.10.2.js"></script> 
<script type="text/javascript"> 

    $(document).ready(function(){ 
     $.post("<?= $baseURL?><?= $pageparts.$common ?>/saveData.php", 
      { 
       typeOfRecord:"docready", 
       thisURL:"<?= $thisURL ?>" 
      }, 
      function(data,status){ 
       ; 
      } 
     ); 
    }); 
</script> 

這裏是一個什麼樣的結果看起來像一個屏幕截圖。我正在尋找瀏覽器加載過程中最早和最新的事件或點,從它開始從服務器接收數據以響應其請求的時間開始。 Timestamps and split times on server and client side of generating a web page.

You can run a sample at this link

這裏是我有搞清楚一個問題:

  1. 應該使用什麼樣的事件記錄當瀏覽器接收並開始呈現的最早時刻由服務器發送給它的頁面源,以及瀏覽器完成的最後一件事情被認爲是加載的。
+0

如果您在頭文件中包含jquery.js,並立即使用腳本元素並使用事件處理函數中的'$ .ajax()'* not *包裝,那麼該請求應該儘早完成,到''標籤...但爲什麼你不使用瀏覽器的開發控制檯的網絡(和其他)選項卡? – nnnnnn

+0

我不知道一個瀏覽器的開發控制檯做我在找什麼。我正在檢查。 – DanAllen

+0

這個問題爲什麼會降低選票?我不知道問題是什麼。如果我發現問題,我會解決問題。 – DanAllen

回答

2

如果您在頭的jquery.js,並與使用$.ajax()(或$.post()或其他)的腳本元素緊跟它包裹在一個事件處理程序,那麼Ajax請求應立即在做在瀏覽器甚至到達<body>標籤之前的那一點。

因此,假設您顯示的JS代碼位於標題中,您可以在綁定文檔就緒處理程序之前添加ajax調用。

請注意,瀏覽器當然必須在下載jQuery之前下載腳本,因此如果您想在此之前進入,您必須自己編寫ajax調用,而不使用jQuery方法,在腳本元素中包含在jQuery之前。

您可能還想看看使用瀏覽器的開發控制檯的網絡(和其他)選項卡(S)這種類型的東西。

+0

我在字符集元標記之後使用正確的郵件作爲頭部分中的第一件事。 JQuery仍然是其中的一部分,但我在沒有jQuery的情況下工作。我認爲這個帖子是Ajax,所以我需要了解Ajax是什麼,以及爲什麼這個帖子不是Ajax。爲了閱讀關於瀏覽器加載的結尾,我在關閉HTML標記後加上另一個在線文章,以及由window.ready包裝的文章。 – DanAllen

+0

這與瀏覽器控制檯有關嗎?控制檯輸出可以發送到數據庫嗎?是否有可能讀取正在擊中我的網站的遠程瀏覽器的控制檯?控制檯能用來查看使用我的網站的用戶的加載時間嗎?我的一個要求是看我的客戶需要多長時間來加載我的網站,這取決於互聯網連接速度和客戶端內存的變化。 – DanAllen

+0

JQuery的'.post()'方法確實發出ajax請求。但作爲一個jQuery方法,它只有在加載jQuery之後才能運行。如果你自己編寫代碼,你可以創建一個沒有jQuery的ajax請求 - 這裏有許多關於這個在線的教程 - 然後在jQuery下載之前,這個ajax請求不會被延遲。 (關於控制檯,這是一個客戶端工具,所以不能,你不能用它來查看你的個人客戶正在經歷什麼。) – nnnnnn