鍍金池/ 問答/HTML/ JS 如何獲取http請求響應(yīng)時間

JS 如何獲取http請求響應(yīng)時間

問題:點(diǎn)擊一個按鈕用AJAX獲取后臺的數(shù)據(jù),如何獲取這個期間的請求時間,網(wǎng)速慢的請求下,請求時間長。快反之。

我有個思路不曉得正不正確:
點(diǎn)擊按鈕時,獲取當(dāng)前點(diǎn)擊時的時間戳,當(dāng)頁面返回數(shù)據(jù)后,在獲取時間戳,兩個時間段相減。

回答
編輯回答
負(fù)我心

不知道你想要這請求的時間用來做什么用途。。 如果僅僅只是想看看請求時間的快慢的話??刂婆_有一個console.time可以了解一下.

2018年3月6日 07:09
編輯回答
誮惜顏

可以看看window.performance

2018年5月29日 20:16
編輯回答
網(wǎng)妓

這個思路是對的,在Chrome Network Timing中可以查看一個請求在各個階段所花費(fèi)的時間,由于segmentfault的評論上傳圖片功能有問題,在此把Timing中各個字段代表的意思發(fā)出來:
1、Queueing
請求文件順序的的排序
什么東西?
瀏覽器有線程限制的,發(fā)請求也不能所有的請求同時發(fā)送,所以,隊列嘍。
從添加到待處理隊列
到實際開始處理的時間間隔標(biāo)示
2、Stalled
是瀏覽器得到要發(fā)出這個請求的指令到請求可以發(fā)出的等待時間,一般是代理協(xié)商、以及等待可復(fù)用的TCP連接釋放的時間,不包括DNS查詢、建立TCP連接等時間等
3、DNS Lookup
時間執(zhí)行DNS查找。每個新域pagerequires DNS查找一個完整的往返。 DNS查詢的時間,當(dāng)本地DNS緩存沒有的時候,這個時間可能是有一段長度的,但是比如你一旦在host中設(shè)置了DNS,或者第二次訪問,由于瀏覽器的DNS緩存還在,這個時間就為0了。
4、Initial connection
建立TCP連接的時間,就相當(dāng)于客戶端從發(fā)請求開始到TCP握手結(jié)束這一段,包括DNS查詢+Proxy時間+TCP握手時間。
5、Request sent
請求第一個字節(jié)發(fā)出前到最后一個字節(jié)發(fā)出后的時間,也就是上傳時間
6、Waiting(TTFB)
請求發(fā)出后,到收到響應(yīng)的第一個字節(jié)所花費(fèi)的時間(Time To First Byte),發(fā)送請求完畢到接收請求開始的時間;這個時間段就代表服務(wù)器處理和返回數(shù)據(jù)網(wǎng)絡(luò)延時時間了。服務(wù)器優(yōu)化的目的就是要讓這個時間段盡可能短。
7、Content Download
收到響應(yīng)的第一個字節(jié),到接受完最后一個字節(jié)的時間,就是下載時間

2018年7月20日 12:17
編輯回答
蔚藍(lán)色
var sendDate = (new Date()).getTime();

$.ajax({
    //type: "GET", 
    type: "HEAD", 
    url: "/someurl.htm",
    success: function(){

        var receiveDate = (new Date()).getTime();

        var responseTimeMs = receiveDate - sendDate;

    }
});
2017年8月29日 06:57