刷步php
1. php中如何实现防刷新机制
最常见的防刷新肯定是在处理表单的时候,防止重复提交。我们有很多种方式来处理:1、提交表单之后,进行跳转,这是很常用的方式。如果你的表单是从index.php提交到post.php页面处理的,那么提交完之后可以跳转再回到index.php页面,这样再刷新就不会重复提交了。如果你是提交给当前页面处理,可以在提交之后再重新跳转到当前页面。2、使用验证码,也很常用。在提交表单数据之前先判断验证码,由于每提交一次,验证码就会变,所以这样是可以避免重复提交的。3、使用Ajax方式,毫无疑问可以避免刷新重复提交。以上讨论的是针对表单提交的防刷新,那么其他的防刷新呢?比如,我要统计一篇文章的点击数,我希望当用户刷新页面的时候,不进行统计,该怎么办呢?在此,站长只提供一种不完美的解决方案:即在当前的会话中,不统计重复载入。请看下面的代码:<?php session_start();if(!$_SESSION['sid']){ $_SESSION['sid']=session_id(); echo ‘您在此次会话中第一次浏览该页面,进行统计’;}else{echo ‘您已经在此次会话中浏览过该页面,不统计’; }?>当用户在第一次会话中访问页面时,进行统计,并把当前的会话id存在session,如果用户刷新或者从浏览器重新载入,由于在当前会话中已经访问过了,所以不会再次统计。但是,如果当用户关闭浏览器后再浏览,是会统计的。在此,站长也就文章统计是否有必要做得这么精确,说一些个人看法吧。用户浏览你网站的文章有这么几种方式:1、通过点击站内链接2、直接输入网址3、通过第三方的链接或者跳转这三种都构成正常的访问,是应该统计的。刷新,严格来说确实不应该算进统计中去,而且在多进程的浏览器中,用户打开新窗口重复输入网址也跟刷新差不多,而文章的真实访问量和重复刷新量之间的差距肯定是非常大的,所以即便是将刷新的次数算进统计中去,也不会产生太大的影响。上面的代码,实现了不完美的防刷新,但是却多出了额外的判断,而且使用session也是要消耗资源的。
2. html页面按钮,执行PHP文件,并2秒后刷新本页一次.
用js里的ajex配合setTimeOut函数,可以实现定时刷新网页的部分内容,也可以全部刷新
3. php长期定时刷新一个页面
如果是Linux系统可以用Crontab,如果是window系统可用计划任务.
看你的服务器压力大不大喽,不大的话可以这么干。
还有一种就是JS方法
<script language="javaScript">
function myrefresh(){
window.location.reload();
}
setTimeout('myrefresh()',3000);
</script>
把页面打开放那吧。
4. PHP页面怎么完成局部刷新
使用情况是:我点击本页面,要使本页面的某块局部刷新;本页面通过这种方式包含局部页面: <div id="allvideo"><?php require_once("./relation.php");?></div><script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
function localRef(){
var url = "relation.php"; //局部包含的页面var pars = "param=" + param + "&type=" + type + "&channelid=" + channelid + "&Page_Num=" + Page_Num + "&Country=" + Country + "&Order_By=" + Order_By; //要传递的参数
var myAjax = new Ajax.Updater(
'allvideo', //把取得的HTML结果更新到的层
url,
{
method : 'get',
parameters : pars,
evalScripts : true
}
);
5. 我想通过PHP异步操作执行一些代码应该怎么做
好的程序应该尽可能少的去读取数据库,而不是像你说的还100毫秒读取一次。这样的需求本身就很有问题哦
6. php无法实现异步刷新
第一步,引入jquery,各样的版本都有,搜一下,下载下来<script type="text/javascript" src="images/jquery-1.4.4.min.js"></script> 第二步 局部异步刷新的HTML添加ID,比如<div id="shuaxin"></div>//需要刷新的内容<a href="#" onclick="Refresh()">刷新</a>//点击刷新第三步 设置路径,参数等<script>function Refresh(){$.ajax({ async: false, url: "a.php",//PHP文件的地址 type: "post",//get和post发送方式 data: { id:"1",cid:"2"},//参数,没有参数可以不要,现在是这样(a.php?a=1$cid=2) success: function (data) { $("#shuaxin").html(data);//data是返回的数据,根据ID添加到shuaxin的div里 } }); } </script>第四步,这是PHP返回数据 a.php <?php$id=$_REQUEST['id'];//接收id参数,没有参数就不用写$cid=$_REQUEST['cid'];//接收cid参数,没有参数就不用写 //做一些你想做的操作, echo ?? //返回给html?> 大概就是这个样子,没测试。
7. php 延迟异步执行执行怎么做
用js,给b方法加个setTimeout()定时器,设定20秒后执行b方法即可,其他方法正常运行。
setTimeout() :在指定的毫秒数后调用函数或计算表达式。
8. php如何实现脚本异步执行的方法具体分析
php语言得用fsockopen()函数,实现脚本异步运行,代码如下
异步请求函数(用debug参数若为true则为用为调试,开启调试可以看到异步的执行情况,但是失去异步的效果)
main.php
<?php
/**
*异步请求
*@rightCopyright(c)HangzhouTechnologyCo.,Ltd.(https://www.5wx.org)
*@author$Author:juny$
*@version$Id:main.php3322018-09-2309:15:08Zjuny$
*/
functionrequest_by_fsockopen($url,$post_data=array(),$debug=false){
$url_array=parse_url($url);
$hostname=$url_array['host'];
$port=isset($url_array['port'])?$url_array['port']:80;
@$requestPath=$url_array['path']."?".$url_array['query'];
$fp=fsockopen($hostname,$port,$errno,$errstr,10);
if(!$fp){
echo"$errstr($errno)";
returnfalse;
}
$method="GET";
if(!empty($post_data)){
$method="POST";
}
$header="$method$requestPathHTTP/1.1 ";
$header.="Host:$hostname ";
if(!empty($post_data)){
$_post=strval(NULL);
foreach($post_dataas$k=>$v){
$_post[]=$k."=".urlencode($v);//必须做url转码以防模拟post提交的数据中有&符而导致post参数键值对紊乱
}
$_post=implode('&',$_post);
$header.="Content-Type:application/x-www-form-urlencoded ";//POST数据
$header.="Content-Length:".strlen($_post)." ";//POST数据的长度
$header.="Connection:Close ";//长连接关闭
$header.=$_post;//传递POST数据
}else{
$header.="Connection:Close ";//长连接关闭
}
fwrite($fp,$header);
//-----------------调试代码区间-----------------
//注如果开启下面的注释,异步将不生效可是方便调试
if($debug){
$html='';
while(!feof($fp)){
$html.=fgets($fp);
}
echo$html;
}
//-----------------调试代码区间-----------------
fclose($fp);
}
$data=array('name'=>'guoyu','pwd'=>'123456');
$url='http://localhost/test/other.php';
request_by_fsockopen($url,$data,true);//
other.php
<?php
header("content-type:text/html;charset=utf-8");
//error_reporting(0);
//ini_set('html_errors',false);
//ini_set('display_errors',false);
$name=isset($_POST['name'])?$_POST['name']:'';
$pwd=isset($_POST['pwd'])?$_POST['pwd']:'';
echo$name.$pwd;
echo'successok';
die;
?>
使用实例:
[运行的main.php主脚本文件]$data=array('name'=>'guoyu','pwd'=>'123456');
$url='http://localhost/test/other.php';
request_by_fsockopen($url,$data,true);//把应用B的用户表异步-同步数据
[导步执行文件other.php]
在other.php中便可以用$_POST接收main.php提交过来的参数,从而进行下一步操作
以上就是php如何实现脚本异步执行的方法具体分析的详细内容.
9. 写一个php不断访问刷新一个网页
你要做甚?如果是提高访问量,劝你省省了。
10. php怎么才能实时输出所操作的动作到屏幕上来
使用websocket建立连接 ,服务器实时给客户端推送消息,客户端收到消息即可做出响应