gpt4 book ai didi

php - 通过ajax发送数据时,数据丢失

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:48:33 25 4
gpt4 key购买 nike

我正在从事一个项目,我为一家旅行社开发了一个网站。事情正在变得更好,并且正在产生更多的流量。问题在于价格表生成缓慢。我和我的客户认为,由于资金充足,内存缓存应该可以解决问题。在我开始时退出,我用新的 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,
});
}
});
}

GetPriceTable.php 是一个大文件,执行许多查询并在那里完成大量价格计算。这一切都会产生一个带有价格的 HTML 表格。存储在 data 中的输出被注入(inject)到 div 的 innerHTML 属性中,在本例中为 targetElement,因为它必须是可调整的。

我想,好吧.. 当我在 data 中有正确的输出时,我就用数据再次调用 WriteCache.php。然后通过 $cache->set("my_key", $_POST["data"]); 将数据存储在内存缓存服务器中(使用 header 并将其设置为过去以确保"new" '访问浏览器)。

现在是棘手的部分......无论我尝试什么,我的缓存中都只能得到 4067 个字符。我已经没有我能想到的选择了。这只是总输出的一小部分...Additiondata.lengthalert 显示在住宿价格表中我在看,长度是98.858。

您对可能导致这种奇怪行为的原因有什么建议吗?难道数据是一点一点传递的? Memcache 有一个选项 chunk_size,默认情况下它设置为 8192(我猜是字节数?,documentation 不告诉..)

非常感谢任何帮助!

干杯!

附言标签 memcached 必须是 memcache 但我不能选择那个选项..

更新该问题与内存缓存无关。出于某种原因,我的数据在再次发送时发生了变化。这导致无效的 HTML,出于某种原因,它没有设置到缓存中,也没有显示在我的输出中(邮件给我自己)但是当我将结果(在第二次调用中使用成功:)输出到另一个 DIV 时,我确实看到了“损坏”输出...

最佳答案

我已经弄明白了,虽然我花了整个晚上...我的输出包含 HTML 实体。你猜对了。 HTML 实体以一个符号开头,它同时是 $_GET$_POST$_REQUEST 检索数据的定界符。一个简单的 escape(data) 就可以了。感谢所有花时间深入研究的人!

关于php - 通过ajax发送数据时,数据丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7639458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com