2011-03-21 42 views
2

我最近收到一個請求,以確定用戶的瀏覽器是否啓用了預取功能。我四處搜尋,但我已經空了。有關如何完成此任務的任何想法?我看過頭部的流量,並且在請求中沒有看到任何可以指示預取已啓用的內容。確定客戶端是否啓用了預取

+0

您的服務器將不得不檢測一個模式。我嚴重懷疑它可以從客戶端代碼完成。 Firefox預取時會發送一個頭(「X-moz:prefetch」)。 – Pointy 2011-03-21 19:51:38

回答

2

<link href="myTester.xxx" rel="prefetch" />放在頭上。

在myTester.xxx的任何句柄中(這將更有可能通過myTester.php,myTester.aspx等)在會話中設置一個標誌(如果您已經在使用會話,並且因此沒有更多的懲罰這樣做)或設置一個cookie。做出迴應v。小(空白就可以)。

在onload上,設置延遲(使用setTimeout)嘗試從myTesterResult.xxx中檢索XML或JSON文件,該文件具有不同的結果,具體取決於該會話值或cookie。

或者,如果您不需要它在該頁面上作出反應,則根本不需要任何客戶端腳本,隨後的服務器端腳本將能夠根據需要使用會話或cookie。

0

我會第二個意見,客戶可能不能這樣做。一個可能的解決方案是將預取添加到頁面,表示預取被啓用,例如:

<link rel="prefetch" href="/hasPrefetching.php"> 

如果您需要知道服務器上,你現在有信息。如果您需要了解客戶,可以在一段時間後進行輪詢。

相關問題