我在谷歌應用引擎上的應用程序返回內容項目(只是文本)和對它們的評論。它是這樣工作的(僞代碼):在谷歌App Engine中有效地提供動態內容
query: get keys of latest content #query to datastore
for each item in content
if item_dict in memcache:
use item_dict
else:
build_item_dict(item) #by fetching from datastore
store item_dict in memcache
send all item_dicts to template
對不起,如果代碼是不可理解的。我獲取所有內容字典並將它們發送到模板,該模板使用它們來創建網頁。我的問題是,如果memcache已經過期,對於我想要顯示的每個項目,我必須(1)在memcache中查找項目,(2)因爲沒有存在memcache我必須從數據存儲中獲取項目, 3)將項目存儲在內存緩存中。這些呼叫迅速建立起來。
我沒有設置到memcache的條目到期時間,所以這真的只發生在早上一次,但網頁花了足夠長的時間加載(約1秒),瀏覽器報告它不存在。通常,我的網頁大約需要50ms才能加載。
這種方法適合頻繁訪問,但它的缺點如上所示。我該如何補救?這些條目足夠動態,我認爲緩存我的初始請求並不符合我的最佳利益。
在此先感謝
謝謝,這會有很大的幫助。是的,由於某些原因,Chrome有時很容易放棄。 – awegawef 2010-04-04 21:45:06
這聽起來像一個鉻的錯誤,而不是您的網頁的問題。 – 2010-04-06 15:39:35