我只是想知道SESSION变量有时候设置/取消设置是否很慢?
说实话我不确定如何测试SESSION设置或取消设置的速度有多快但是我注意到当我使用ajax调用来设置/取消设置SESSION变量大约10%的时间代码时在设置/取消设置SESSION变量之前执行ajax回调函数。
我已经在回调函数中放置了一个setTimeout,让它在执行代码之前等待一秒钟,这似乎消除了这个问题,虽然这似乎是一个糟糕的修复。做这样的事情被认为是不好的做法吗?
学习者,善良: - )
jQuery
$("#whatever_button").click(function(){
var $x = "1";
$.ajax({
url: "filename.php",
data: { set_session: $x},
type: "post",
dataType: "text",
success: function(response){
if (response == "1"){
//delay execution for 1 second
setTimeout(function(){
//Place code here
}, 1000);
} else alert("Something went wrong.");
},
});
});
PHP
if (isset($_POST['set_session'])){
unset($_SESSION['variable']); //unset session variable
echo "1";
}
答案 0 :(得分:1)
一个会话存储在一个文件中,因此根据你的服务器,它可能需要几毫秒来保存它,尽管我几乎不会怀疑这是否会引起注意,除非你已经将session_save_path设置为1985'软盘驱动器,其中几乎没有工作软盘。
更有意思的是您的目标,因为您不会返回与新设置foreach (MyInvoiceClass invoice in ListView1.ItemsSource)
{
// NOW use the "invoice" object to access its properties
}
相关的任何内容。
也许你应该包括一个测试来查看会话是否未设置
$_SESSION['variable']
如果你想检查时间,你总是可以使用php的unset($_SESSION['variable']);
if ( ! isset($_SESSION['variable'])) return '1';
功能。
microtime()