PHP的SESSION同一客戶端請求時服務器SESSION不結束,下一請求無法進行!
例如下代碼:
client:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="format-detection" content="telephone=no" />
<script type="text/javascript" src='#'" /jquery-1.7.2.min.js"></script>
<style>
#content {
width: 100%;
height: 100%;
text-align:center;
}
</style>
</head>
<body style="margin:0; padding:0;">
<script type="text/javascript">
$(document).ready(function() {
for(var i = 1; i <= 5; i++) {
$.ajax({
url:"rest.php?call=" + i,
success: function(data){
var id = i;
$("body").append("<p>Call complete " + data + "<p>");
}
});
}
});
</script>
</body>
<html>
server:
<?php
session_start();
sleep(2);
echo '{json:"repsonse ' . $_GET["call"] . '"}';
?>
以上客戶端加載需要10S多時間。
SESSION使用完可以用session_write_close();關閉,下一請求可以馬上執行!
例:
<?php
session_start();
session_write_close();
sleep(2);
echo '{json:"repsonse ' . $_GET["call"] . '"}';
?>
以上代碼客戶端加載時間從10s減少到2s時間!