Server Push >2.長時間運作注意事項
Server Push >2.長時間運作注意事項網頁特性
基本上不論是什麼樣的型態使用server push 都必須注意,client 的瀏覽器一定要“源源不絕”的給資料。
只要沒資料輸出在*設定的時間之後還是會timeout。
*設定的時間:我還不知道影響的參數在哪。
文字
沒新資料至少也要繼續給最後一筆
[code]
<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->
<head>
<style>
.new_display {
BORDER-BOTTOM:0;
BORDER-LEFT:0;
BORDER-RIGHT:0;
BORDER-TOP:0;
height:32px;
font-size:24px;
</style>
</head>
<form method="get"action="view.php"id="ff"name="ff">
<input type="text"name="aaa"class="new_display"style="width:700px;">
</form>
<?php
$sql ="SELECT *FROM listen ORDER BY sid DESC LIMIT 1";
while(1){
//echo $sql;
$query =mysql_query($sql );
$row =mysql_fetch_object ($query );
$sid =$row->sid;
$message =$row->message;
if ($sid !='')echo "<script>document.ff.aaa.value="$message";</script>";
flush();
sleep(1);
}
?>
[/code]
圖片
1.10秒後就算沒更新還是要重新給一次
2.圖檔必須使用javascript new Image()預先載入圖檔
[code]
<head>
<script>
img1=new Image();
img1.src ="open_door.jpg";
img2=new Image();
img2.src ="close_door.jpg";
</script>
</head>
<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->
<?php
$sql ="SELECT *FROM listen WHERE viewed='n'ORDER BY sid DESC LIMIT 1";
$i =0;
while(1){
//echo $sql;
$query =mysql_query($sql );
$row =mysql_fetch_object ($query );
$sid =$row->sid;
$message =$row->message;
if ($sid !=''){
// 門
if ($message =='open_door')
$show ="<div id="Layer1"style="position:absolute;width:640;height:480;z-index:1;left:0;top:0;"><img src="open_door.jpg"border=0></div>";
echo $show;
if ($message =='close_door')
$show ="<div id="Layer1"style="position:absolute;width:640;height:480;z-index:1;left:0;top:0;"><img src="close_door.jpg"border=0></div>";
mysql_query("UPDATE listen SET viewed='y'WHERE sid='$sid'");
}
if ($i%10==0)echo $show;
$i++;
ob_flush();
flush();
sleep(1);
}
?>
[/code]
最後提醒!
一定要確保client 的瀏覽器可以一直收到資料,不管是什麼資料...
from:[url]http://www.hoyo.idv.tw/hoyoweb/document/view.php?sid=200[/url]
頁:
[1]