php中怎么实现后台执行??
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中怎么实现后台执行??相关的知识,希望对你有一定的参考价值。
php从文本读取大量数据插入数据库,怎么实现,后台执行,而不让浏览器继续等待,并且浏览器的页面可以正常跳转,实现php和浏览器的异步
用 ajax 实现异步加载
然后
i
gnore_user_abort(true);//即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.
set_time_limit(0);
while(1)
$fp = fopen('time_task.txt',"a+");
$str = date("Y-m-d h:i:s")."\\n\\r";
fwrite($fp,$str);
fclose($fp);
sleep(5); //半小时执行一次
追问
这个我试过,确实是可继续执行,但浏览器的页面不能跳转
追答不能跳转是因为ajax 没有执行完
可以用 abort(); 函数 强制中断ajax执行
具体信息 你可以搜索 jquery ajax 中断
我一般都用jquery ,原生的js 不太会写了
function rf($f,$sp)
//$f为文件路径,$sp为读取位置
.....
fseek($f,$sp);
//读取指定长度的内容
$content = fread($f,$len);
.....
return $nextsp //返回下次要处理的位置,如果到文件尾,就置 -1.
然后后台通过AJAX调用以上处理文件,如果返回值>0就继续调用,如果为-1就结束 参考技术B php想要直接异步挺难,对多线程支持也不好
一般可以另外弄个消息队列来处理任务,php端发送任务到消息队列
另外一个程序去队列中取任务完成 参考技术C 说的不够详细,PHP只是个代码 你说“实现PHP和浏览器异步??” 没明白你要表达什么追问
当插入大量数据到数据库时,需要用很长时间,总不能让浏览器一直等待插入结束吧,就是让这个漫长的处理数据的过程,后台执行,浏览器正常跳转到其他页面
asp.net后台弹出一个确认对话框,点击确定时执行我写的方法,点击取消不执行,该怎么实现?
if(txt_WH1.Text !="")
Response.Write("<Script Language='JavaScript'>if ( window.confirm('Are You Sure To Submit?')) else ;</script>"); ok(); else Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>alert('请填写数字!');</script>");
我想实现的功能是点击确定后会执行ok()这个方法,点击取消则不执行,而现在无论是点击确定还是取消都会执行,该如何修改呢?谢谢各位了!
<Script Language='JavaScript'>
function mm()
var mytxt=document.getElementById("txt_WH1");
if(mytxt.Text ="")
alert('请填写数字!');
return false;
else
if ( window.confirm('Are You Sure To Submit?'))
…………
return true;
else
………………
return false;
;
</Script > 参考技术A Response.Write输出完之后后面的代码肯定是会执行的,你这个前台要用ajax调后台方法,类似于调Webservice的方法;或者用通过<%%>直接调用 参考技术B if(txt_WH1.Text !="")
Response.Write("<Script Language='JavaScript'>if ( window.confirm('Are You Sure To Submit?')) ok(); else alert('请填写数字!');</script>");
这样修改试试呢?
以上是关于php中怎么实现后台执行??的主要内容,如果未能解决你的问题,请参考以下文章