1.根据前两篇所总结,处理数据都是在客户端即用户浏览设备端,而有的设备,例如手机对js的编译解释出现延迟,所以本次将数据的处理放在服务器端,chuli.php处理完毕数据在传回给time_weixin.js,本文与第二篇代码基本一样,改变的是chuli.php和time_weixin.js
2.chuli.php代码如下:
<?php
$id=$_POST["id"];
if($id==0){
$str=$_POST["str"];
$str=substr($str,0,strlen($str)-1);
$re=file_put_contents('str.txt', $str);
if($re){
echo "1";
}
else{
echo "0";
}
}
else if($id==1){
$str=file_get_contents('str.txt');
echo $str;
}
else{
$str=file_get_contents('str.txt');
$tmnow=strtotime(date("H:i"));
$hang=explode("/",$str);
for ($i=0;$i<count($hang);$i++) {
$lie=explode("|",$hang[$i]);
$tm=$lie[0];
$tmarr=explode("-",$tm);
$tmfir=strtotime($tmarr[0]);
$tmlast=strtotime($tmarr[1]);
if($tmnow>=$tmfir && $tmnow<$tmlast){
$name=$lie[1];
$weixin=$lie[2];
break;
}
}
$info = array('name' =>$name ,'weixin'=>$weixin );
foreach ( $info as $key => $value ) {
$info[$key] = urlencode($value); //使用urlencode()对中文编码,防止中文乱码
}
echo urldecode(json_encode($info));//使用urldecode()对中文解码
}
3.time_weixin.js代码如下
function time_weixin(){
var info= new Array();
$.ajax({
url:"../js/chuli.php",
data:{id:2},
type:"POST",
dataType:"TEXT",
async:false,
success: function(data){
var msg=eval("("+data+")");//ajax中返回的是json字符串,将它转化为js对象:eval再加上两边的括号和引号
info[0]=msg['name'];
info[1]=msg['weixin'];
}
});
return info;
}
var nmtext=time_weixin()[0];
var wxtext=time_weixin()[1];
var nm=document.getElementsByClassName("nm");
var wx=document.getElementsByClassName("wx");
for(i=0;i<nm.length;i++){
nm[i].innerHTML = nmtext;
}
for(i=0;i<wx.length;i++){
wx[i].innerHTML = wxtext;
}