HTML前端代码
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <script type="text/javascript" src="/luci/js/jquery-1.11.1.min.js"></script> </head> <body> <div id="msg"></div> <input id="btn" type="button" value="接收测试" /> <br> <input id="btn-input-imei" type="text" class="form-control-imei input-md" placeholder="输入IMEI" /> <input id="btn-input-msg" type="text" class="form-control-msg input-md" placeholder="输入发送hex字符串" /> <button class="btn btn-success btn-md" id="btn-chat">发送回复测试</button> <div id="send_msg"></div> <script type="text/javascript" > $(function(){ $("#btn").bind("click",{btn:$("#btn")},function(evdata){ $.ajax({ type:"POST", dataType:"json", url:"back.php", timeout:80000, //ajax请求超时时间80秒 data:{IMEI_GET:"80"}, //40秒后无论结果服务器都返回数据 success:function(data,textStatus){ //从服务器得到数据,显示数据并继续查询 if(data.success=="1"){ $("#msg").append("<br>[有数据]"+data.text); evdata.data.btn.click(); } //未从服务器得到数据,继续查询 if(data.success=="0"){ $("#msg").append("<br>[无数据]"); evdata.data.btn.click(); } }, //Ajax请求超时,继续查询 error:function(XMLHttpRequest,textStatus,errorThrown){ if(textStatus=="timeout"){ $("#msg").append("<br>[超时]"); evdata.data.btn.click(); } } }); }); }); </script> <script type="text/javascript"> $(function(){ $("#btn-chat").click(function(){ $.ajax({ url:'back.php', type:'post', data:{"IMEI":$("#btn-input-imei").val(),"MSG":$("#btn-input-msg").val()}, //拼装json数组 // data:$("#fm").serialize(), //直接从form表单中取出数组 dataType:"JSON", success:function(msg){ if(msg) { // $("p").append("IMEI:" + msg.IMEI + "<br />" + "数据恢复:" + msg.MSG ); $("#send_msg").append("IMEI:" + msg.IMEI + "<br />" + "数据恢复:" + msg.MSG + "<br>"); } else { alert("输入异常!"); } }, error:function(){ console.log("ERROR"); } }); }); }); </script> <div id="example"> <h3 id="example_title">将滚动条(scrollbar)保持在最底部的方法</h3> <div id="example_main"> <script type="text/javascript"> function add() { var now = new Date(); var div = document.getElementById('scrolldIV'); div.innerHTML = div.innerHTML + 'time_' + now.getTime() + '<br />'; div.scrollTop = div.scrollHeight;//主要 需要指定高度度 } </script> <span>请点击“插入一行”按钮,插入最新信息,当出现滚动条时,滚动条将自动保持在底部。</span><br /> <div id="scrolldIV" style="overflow:auto; height: 100px; width: 400px; border: 1px solid #999;"> </div> <input type="button" value="插入一行" onclick="add();"> </div> </div> </body> </html>
PHP后端代码
server_get.php <?php if (isset($_POST['IMEI']) && isset($_POST['MSG'])) { function validate($data){ $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } $IMEI = validate($_POST['IMEI']); $MSG = validate($_POST['MSG']); $json = array("IMEI"=>$IMEI, "MSG"=>$MSG); //组合成json数组 $data = json_encode($json); //编译数组转化为json数据 echo $data; //将json数据传回网页 } elseif(isset($_POST['IMEI_GET'])) { set_time_limit(0);//无限请求超时时间 $i=0; while (true){ //sleep(1); usleep(500000);//0.5秒 $i++; //若得到数据则马上返回数据给客服端,并结束本次请求 $rand=rand(1,999); if($rand<=15){ $arr=array('success'=>"1",'name'=>'xiaoyu','text'=>$rand); echo json_encode($arr); exit(); } //服务器($_POST['time']*0.5)秒后告诉客服端无数据 if($i==$_POST['IMEI_GET']){ $arr=array('success'=>"0",'name'=>'xiaoyu','text'=>$rand); echo json_encode($arr); exit(); } } } else { exit(); } ?>
发表评论