我正在開發一個項目,在該項目中爲旅行社開發了一個網站。事情變得越來越好,更多的流量正在產生。問題在於生成的需求緩慢。我和我的客戶認爲,由於可用的資金,memcache應該能夠做到。退出,因爲我開始我已經用新的jQuery ajax代碼重寫了舊的ajax代碼。今天晚上的其他一些帖子有點涵蓋了這個話題。在通過ajax發送數據時,數據會丟失
現在我有以下的代碼顯示了pricetable一定一個月:
function ShowPriceTable(targetElement, accommodationID, month)
{
$.ajax({
type: "POST",
url: basePath + "/ajax/GetPriceTable.php",
data: "accommodationID="+accommodationID+"&month="+month,
success: function(data){
$("#"+targetElement).html(data);
$.ajax({
type: "POST",
url: basePath + "/ajax/WriteCache.php",
data: "accommodationID="+accommodationID+"&month="+month+"&data="+data,
});
}
});
}
GetPriceTable.php是一個大文件,執行許多查詢和大量pricecalculation的是那裏進行。這一切都會產生一個包含價格的HTML表格。存儲在data
中的輸出被注入div的innerHTML屬性,在這種情況下爲targetElement
,因爲它必須是可調整的。
我想,呃..當我有正確的輸出在data
我只是再次打電話給WriteCache.php
與數據。數據然後通過$cache->set("my_key", $_POST["data"]);
存儲在memcache服務器中(使用標題並設置爲過去以確保瀏覽器的「新」訪問)。
現在出現了棘手的部分...無論我嘗試什麼,我的緩存中只能得到正確的4067個字符。我已經用完了我能想到的選項。這只是總產量的一小部分... 加入,alert
data.length
顯示我在我尋找的住宿pricetable,長度是98.858。
你有什麼建議可能會導致這種奇怪的行爲?它可以是數據一點一點傳遞? Memcache有一個選項chunk_size
,默認情況下它設置爲8192(字節我猜?,documentation do not告訴..)
任何幫助非常感謝!
乾杯!
P.s.標記memcached必須是memcache,但我不能選擇該選項。
更新 問題與memcache無關。出於某種原因,我的數據在被再次發送時發生了變化。這導致無效的HTML,由於某種原因,沒有設置到緩存中,並沒有顯示在我的輸出(郵件給我自己),但當我輸出結果(使用成功:在第二次調用)到另一個DIV時,我看到'mangled'輸出...
上個月早些時候,collegue有一個類似的問題,他試圖通過$ .ajax發送超過1mb的數據到服務器,並且它保持失敗。他不得不上傳不到一百萬字節的數據塊,否則會崩潰而無法發送。也許你的錯誤在於類似的地方? –
有關如何實施此類解決方案的任何想法? – Ben
只是猜測,但嘗試 'data:「accommodationID =」+ accommodationID +「&month =」+ month +「&data =」+ data.serialize(),' – alykhalid