Ben*_*Ben 5 php ajax memcached
我正在开展一个项目,在那里我开发了一个关于travelagency的网站.事情变得越来越好,正在产生更多的流量.问题在于缓慢生成的pricetable.我和我的客户认为,由于可用的资金,memcache应该做到这一点.退出我开始时我已经用新的jQuery ajax代码重写了旧的ajax代码.今晚的其他一些帖子有点涉及这个话题.
现在我有以下代码显示特定月份的价格:
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,
});
}
});
}
Run Code Online (Sandbox Code Playgroud)
GetPriceTable.php是一个大文件,执行许多查询,并在那里完成了大量的价格计算.这一切都导致HTML表格的价格.存储的输出data被注入div的innerHTML属性,在这种情况下,targetElement因为它必须是可调整的.
我想,好吧..当我有正确的输出时,data我只是WriteCache.php用数据激发另一个调用.然后将数据存储在内存缓存服务器中$cache->set("my_key", $_POST["data"]);(使用标头并将其设置为过去以确保浏览器的"新"访问).
现在是棘手的部分......无论我尝试什么,我的缓存中只能得到4067个字符.我已经没有了我能想到的选择.这只是总产量的一小部分...... 另外,我在寻找住宿的价格alert中data.length显示了我,长度是98.858.
你有什么建议可能导致这种奇怪的行为吗?数据是否可以一点一点传递?Memcache有一个选项chunk_size,默认情况下它被设置为8192(字节我想??文档没有告诉..)
任何帮助是极大的赞赏!
干杯!
Ps标签memcached必须是memcache但我不能选择那个选项..
更新 问题与memcache无关.出于某种原因,我的数据在重新发送时会发生变化.这导致无效的HTML,由于某种原因,它没有设置到缓存中并且没有显示在我的输出中(邮件给自己)但是当我将结果(使用成功:在第二次调用中)输出到另一个DIV时,我确实看到了'损坏'输出......
我已经弄清楚了,尽管我花了整个晚上...我的输出包含 HTML 实体。你已经猜到了。HTML 实体以 & 符号开头,它同时也是由$_GET,$_POST或检索的数据的分隔符$_REQUEST。一个简单的escape(data)技巧就完成了。感谢所有花时间深入研究这个问题的人!