首页 >后端开发 >php教程 >浅析PHP页面局部刷新功能的实现小结_PHP

浅析PHP页面局部刷新功能的实现小结_PHP

WBOY
WBOY原创
2016-06-01 12:05:361220浏览

方法其实挺多的。以前比较常用的是iframe这样来做。现在多了个ajax,所以一般情况下都是用的ajax。
第一种方法,ajax实现:
当然,ajax使用起来确实很简单就可以实现,但是里面的很多知识还是比较有点深的。我之前做页面时间自动刷新的功能就是用的ajax。完整代码是:
1.getTime.php:
复制代码 代码如下:
header("cache-control:no-cache,must-revalidate"); 
header("Content-Type:text/html;charset=utf-8");
$time = "2012-1-20 18:00:00";
$dt_element=explode(" ",$time);
$date_element=explode("-",$dt_element[0]);
$time_element=explode(":",$dt_element[1]);
$date = mktime($time_element[0],$time_element[1],$time_element[2],$date_element[1],$date_element[2],$date_element[0]);
$nowTime = time(); 
$showtime = date("北京时间Y年m月d日H:i:s",$date-$nowTime); 
if($showtime<="北京时间1970年01月01日08:00:00"){
 echo "happy new year";
}
echo $showtime;

2.zidong.php:
复制代码 代码如下:
 
 

Ajax动态显示时间

 
 

当前时间:

 
 



在浏览器里面直接访问zidong.php就可以了,点击里面的按钮就可以看到效果。
这个就是用ajax做的刷新页面局部内容的小例子。你可能会怀疑:这里面没有跟数据库交互啊?这还不简单,直接在getTime.php页面里面操作就可以啦。

这种方法就不用多说了吧。至于ajax里面的代码是什么意思,不要问我啦,我之前就说过,这里面的ajax还是有点深的。

第二种方法:使用iframe方法实现。
不要给我说用PHP 的include可以啊。你去试试吧。可以,可以就不会有那么多人在百度里面问了。
这种方法呢说起来复杂,其实还是挺简单的。说下原理吧:
要刷新的页面中把要自动刷新的局部的代码单独拿出来,做成一个独立的页面,自动刷新有很多种方法:可以在这个独立页面中用javascript来控制,什么setTimeout("start()",1000);啊或者setInterval("start()",1000);(每隔1秒刷新页面)这样,还可以用meta标签实现:(每隔10秒刷新页面)。这样在原来的页面中用iframe来将它调用过来。这样就可以了。
还是上示例代码吧:
1.show.php:
复制代码代码如下:
渡 //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
<头> 

 
管理员标题> 
<脚本语言=“javascript”类型=“text/javascript”src=“/extend/js/json.js”> 
<脚本语言=“javascript”类型=“text/javascript”src=“/extend/menus.js”> 
脚本> 
 

 
//下面的isKeyTrigger()、ctrlEnter()、submitContent()方法是响应键盘事件提交内容的。不错的兼容性。 
function isKeyTrigger(e,keyCode){ 
var argv = isKeyTrigger.arguments; 
var argc = isKeyTrigger.arguments.length; 
var bCtrl = false; 
if(argc > 2){ 
bCtrl = argv[2]; 

var bAlt = false; 
if(argc > 3){ 
bAlt = argv[3]; 


var nav4 = window.Event ?真:假; 

if(typeof e == '未定义') { 
e = 事件; 


if( bCtrl && 
!((e.ctrlKey 类型!= '未定义') ? 
e.ctrlKey : e.modifiers & Event.CONTROL_MASK > 0)) { 
返回 false; 

if( bAlt && 
!((typeof e.altKey != '未定义') ? 
e.altKey : e.modifiers & Event.ALT_MASK > 0)){ 
返回错误; 

var whichCode = 0; 
if (nav4)whichCode = e.which; 
else if (e.type == "keypress" || e.type == "keydown") 
whichCode = e.keyCode; 
else whichCode = e.button; 

return (whichCode == keyCode); 


function ctrlEnter(e){ 
var ie =navigator.appName=="Microsoft Internet Explorer"?true:false; 
if(ie){ 
if(event.ctrlKey && window.event.keyCode==13){ 
submitContent(); 

}else{ 
if(isKeyTrigger(e,13,true)){ 
submitContent(); 



函数submitContent(){ 
save_answer();  


 
函数 save_answer(){  
var $content = $('#answer').val(); 
var $save_answer_url = ''; 
if ( $content == '' ){ 
alert("没有数据!"); 
返回; 

var $post_data = { 
content : $content , 
qid:'', 
uid:'
}; 
//警报($save_answer_url); 
$.ajax({ 
类型: 'post' , 
url : $save_answer_url , 
数据 : $post_data , 
成功 : function( e ){ 
var $rs = JSON.decode( e ); 
if ( $rs.succ == 1 ){ 
alert("回答成功!"); 
$('#answer').val("");
location.reload(); // 刷新页面
} else { 
alert( $rs.msg ); 


}); 

//删除答案 
function deleteanswer($id){ 
var $delete_answer_url = ''; 
var $post_data = { 
id : $id 
}; 
if(confirm("您确定删除吗?")){ 
$.ajax({ 
type : 'post' , 
url : $delete_answer_url, 
data : $post_data ,
成功:function( e ){ 
var $rs = JSON.decode( e ); 
if ( $rs.succ == 1 ){ 
alert("删除成功!");
location.reload(); // 刷新页面
} else { 
alert( $rs.msg ); 


}); 

其他{ 
返回; 



////设置最佳答案 
//function setbestanswer($id,$aid){ 
//  var $set_bestanswer_url = ''; 
//  var $post_data = { 
//  id : $id , 
//  援助 : $aid 
// }; 
//  if(confirm("您确定设置此答案是最好的吗?")){ 
//  $.ajax({ 
//  type : 'post' , 
//  url : $set_bestanswer_url, 
//  data : $post_data , 
//  success : function( e ){ 
//  var $rs = JSON.decode( e ); 
//  if ( $ rs.succ == 1 ){ 
// alert("设置成功!"); 
//  location.reload(); // 刷新页面
//  } else { 
//警报( $rs.msg ); 
// } 
// } 
// }); 
//  } 
//  其他{ 
//  返回; 
//  } 
//
/

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn