3
我試圖在爲查看圖像的每秒添加一行MySQL的時候提供圖像。當頁面發生變化時,PHP connection_aborted()不起作用
我在1024位數據塊爲它服務(總規模爲圖像是20KB)
的問題是,如果我加載在顯示的圖像的頁面,然後關閉該窗口或點擊鏈接這會將我帶到腳本不斷運行的其他頁面,並且不會像應該那樣使用die
。
ignore_user_abort(false);
$file = 'a.jpg';
header('Content-Type: image/jpeg');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
$conn = mysql_connect("localhost","user","pass");
mysql_select_db("mydb",$conn);
$fp=fopen($file,"rb");
$i=0;
while (!feof($fp)) {
print(fread($fp,1024));
sleep(1);
mysql_query("INSERT INTO table (VIEWTIME) VALUES ('$i')");
$i++;
flush();
ob_flush();
if (connection_aborted()) {
die();
}
}
我試圖找到一個「服務器端」唯一的解決辦法,因爲我有一個使我不能用任何JS或任何客戶端語言的一些技術限制。
你或許應該採取更好的表現出環路的連接(的mysql_connect/mysql_select_db)。至於這個問題,你可以用AJAX做,我不確定沒有某種客戶端檢查是可能的。 – Ynhockey
在服務器可以閃爍之前,A20k文件將被加載。嘗試使用20mb文件! –
嗨@Ynhockey感謝您的評論,我想保留這個服務器端,只是由於一些技術限制。 – user838437