我有以下名为 HowTo 的函数,它与 onclick 事件一起执行,其中的一个函数需要 JQuery 插件 jquery.cookie,即:">一个简单、轻量级的 jQuery 插件,用于读取、写入和删除 cookie。
function HowTo(){
$largeAmountOfHTML = document.getElementById("element").innerHTML;
$.cookie("nameOfCookie", $largeAmountOfHTML);
$.ajax({
type: "GET",
url: "path/to/serverside/script.php",
async:false,
});
window.location.href='anotherPage.php';
};
该函数首先检索大量 HTML 并将其分配给变量 $largeAmountOfHTML。然后使用在jquery.cookie库中声明的JQuery函数$.cookie((,该函数将$largeAmountOfHTML的值保存到cookie名称OfCookie。然后该函数进行AJAX调用,该调用执行服务器端php脚本,该脚本检索cookie数据并将内容保存到MYSQL数据库。完成后,该函数将当前窗口定向到另一个页面.php。
该函数运行平稳,未声明控制台错误。但是,当$largeAmountOfHTML达到一定大小时,jquery.cookie 无法在服务器端脚本尝试检索之前足够快地分配 cookie。jquery.cookie没有列出我可以用来防止这种情况发生的任何方法。
一旦$largeAmountOfHTML足够大并且无法及时保存到 cookie 中,severside 脚本就会声明此错误:
<br />
<b>Notice</b>: Undefined index: nameOfCookie in <b>localhost/path/to/serverside/script.php</b> on line <b>4</b><br />
解决这个问题的最佳方法是什么?
不会延迟完成工作吗?然后只需调用 delay 回调中的服务器端代码即可。