2011-10-18 22 views
0

我想了解緩存數據的使用。我對此有一點了解。它有助於加快數據加載速度,因爲它將信息存儲在瀏覽器中?如何使用ajax,php或jquery緩存信息?

如果有人能幫助我更好地理解這一點,我將不勝感激。另外,是否可以緩存來自輸入字段的值並檢索或存儲以備後用?如果是這樣,有人可以告訴我一個如何在PHP,Ajax或jQuery中實現它的示例,或者指導我學習一個教程嗎?

謝謝!

+0

您試圖緩存哪些信息? –

+0

我試圖緩存文本,並能夠知道文本並使用它來稍後檢索 – hellomello

+0

「文本」?如在腳本中使用的文本? –

回答

0

這取決於。幾乎每次都可以緩存圖像,CSS,js,因爲它總是一樣的。你不需要做任何事情,他們應該自動緩存。

您也可以緩存GET和POST回覆,但這是有點負責任的。你必須知道什麼時候,什麼時候應該沖洗它。

要通過單獨的jQuery開啓緩存的GET請求,使用

$.ajax({ 
    'cache':true, 
    'url' :'ajax.php', 
    //and more parameters 

}); 
+0

我試圖緩存來自輸入字段的文本值。我將如何能夠知道它有什麼價值?如果我輸入一個輸入字段,有沒有辦法看到這個值? – hellomello

+0

「你不需要做任何事情」,除非正確配置你的web服務器 –

+0

@MichaelMior:默認(apache2)服務器給出正確的響應代碼並正確地緩存結果。 – genesis

1

這一季的時裝是使用localStorage的用於存儲客戶端的計算機上的數據。 例如:http://php-html.net/tutorials/html5-local-storage-guide/

+0

非常有趣!我對HTML5編碼不太熟悉,因爲我還是個初學者。例如,接口Storage(....)做什麼? – hellomello

+0

@andrewliu該接口只是localStorage和sessionStorage對象公開的方法的定義。它取自規範 http://dev.w3。org/html5/webstorage /就這樣。 –

1

緩存是位於數據源(數據庫,硬盤驅動器,Web資源等)和某些需要訪問該數據源之間的東西。這個想法是,從緩存中訪問數據的速度應該是,比從數據源直接訪問數據的速度快

如果你想商店文本字段值供以後使用,(不知道更多關於你的設置的細節),我認爲你正在尋找一個cookie。

當用戶在文本框中鍵入文本時,使用javascript到set a cookie

用戶下一次訪問該頁面時,可以使用javascript檢索它們在文本框中鍵入的內容,以查看cookie是否存在,如果存在,那麼它們是什麼。

請注意,此方法會將數據緩存在用戶的計算機上 - 而不是您的Web服務器上。如果要將這些值存儲在Web服務器上,則需要在用戶提交表單時將它們寫入文件或數據庫,或者使用AJAX將輸入表單的值異步發送到PHP後端,所以它可以存儲那裏的值。

如果你能成爲一個更具體一點,以你希望緩存/存儲和什麼爲什麼你認爲你應該做的事情,然後我們可以給你提供一些代碼示例質量更好的答案。

請準確描述您的問題以及您期望的解決方案。

編輯:從你的previous question看來你想要某種自動完成功能。有兩種類型:

1)自動完成什麼樣的用戶以前鍵入:

當用戶提交表單,你可以做的3兩件事:

一)存儲文本輸入到數據庫中。當用戶下一次訪問該頁面時,使用PHP將以前的搜索嵌入到javascript中(可能是一個數組)。當用戶在文本框中鍵入內容時,使用javascript顯示自動完成框。 (對於用戶來說更快,如果您希望存儲每個用戶的大量先前輸入,則不太實際)

b)將文本輸入存儲在數據庫中。當用戶訪問該頁面時,使用AJAX在他們輸入時最有可能的匹配。 (對於用戶較慢,但如果您希望每個用戶保存大量搜索,則效果會更好)

c)將文本輸入存儲在Cookie中。當用戶提交表單時,將輸入保存在cookie中。您可以在多個Cookie中存儲多個搜索,也可以在1個分隔的Cookie中進行搜索。請注意,cookie的最大大小(包括它的名稱和其他詳細信息是4K,所以您應該保持它的身體低於4000字節)。

注意:如果這樣配置,瀏覽器應該自動自動完成用戶以前輸入的內容。您希望自己實現這種類型的自動完成的唯一原因是您想要某種跨瀏覽器或跨系統功能。

2)預測自動完成,就像進行Google搜索時一樣。

該方法基本上與1b相同。您將在數據庫中存儲先前或建議搜索條件的列表。當用戶在輸入字段中鍵入文本時,您的AJAX請求將獲取用戶正在搜索的最有可能的候選項。

+0

如果數以百萬計的用戶,如果用戶的輸入被存儲在數據庫中不會更慢嗎?讓服務器通過數據庫搜索用戶以前的輸入將永遠是對的? – hellomello

+0

很顯然,您搜索的信息越多,需要的時間就越長。您應該研究一些高級數據結構來有效地存儲這些信息。乍看之下,我認爲樹型結構似乎更適合於此目的。 – Ozzah