我有一个网页,其中包含一个巨大的表单。在大多数情况下,会话超时和用户丢失了大量数据。我搜索了这个问题并找到了这个Prevent session expired in PHP Session for inactive user
我实现了ajax调用
function heartbeat() {
clearTimeout(window.intervalID);
$.ajax({
url: "trash.png",
type: "post",
cache: false,
dataType: 'json',
success: function(data) {
},
complete: function() {
window.intervalID = setTimeout(function() {
heartbeat();
}, 300000);
}
});
}
并在heartbeat();
中调用$(document).ready
,trash.png
与我使用Ajax的jQuery代码的文件位于同一目录中。
我用fiddler检查过,jQuery每5分钟向trash.png
发送一次请求。但是30分钟后,我的会话仍然会到期。
session_start();
。
我做错了什么?
答案 0 :(得分:1)
如果不调用启动会话的php脚本,就无法使会话保持活动状态,只需下载png文件就不会使会话死亡。像这样创建一个PHP脚本:
<?php session_start(); ?>
将其放入目录并调用此而不是该trash.png资产。
在调用session_start()
之前,您可能需要调用其他内容,具体取决于您在其他脚本中启动它的方式。
答案 1 :(得分:0)
在ajax中你可以将超时发布为
jQuery.ajax({
url: 'ajaxhandler.php',
success: function (result) {
returned_value=result;
},
timeout: 10000,
async: false
});