我正在开发一个项目,在该项目中为旅行社开发了一个网站。事情变得越来越好,更多的流量正在产生。问题在于生成的需求缓慢。我和我的客户认为,由于可用的资金,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