php里有iframe吗 Mysql数据库里有3000条记录,现需先将其删除,再加入3000条记录,但是提交是以网页的方式,而且需要花费10分多钟,这对用户来说是不可忍受的,如何实现10条记录10条记录的完成,并向用户显示已完成多少? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这么多条记录需要操作说明这个用户肯定很特殊,所以不可忍受其实是可以接受的,这样一般都是管理员之类的才这么操作的吧当然,你可以用ajax10条10条的操作,如果你直接用分页跳转的话,就没有提示了,会在浏览器一直跳转执行 没写过,只是想法,比如你先ajax1-10条,返回成功后继续执行11-20条数据,提示已经在执行11-20条数据啦,然后循环,直到数据执行完成 类似这个[code=javascript] function Creat(jjsortid){ $.ajax({ type: 'POST', url: 'Ajax_JJ.php?Action=CreatJJ&jjsort_id='+jjsortid+'', data: '', dataType: 'html', success: function(data, status) { var jdata=eval("("+data+")");//转换为json对象 if (jdata.error != 'OK'&&jdata.error != 'CONTINUE') { MsgBox(1, jdata.error, ""); } else{ $("#c1_"+jjsortid+"").html(eval($("#c1_"+jjsortid+"").html())+eval(jdata.id)); $("#c2_"+jjsortid+"").html(eval($("#c2_"+jjsortid+"").html())-eval(jdata.id)); if(jdata.error=='CONTINUE') Creat(jjsortid); } } }); } function Process(){ $count=count(RemoveTestList); echo "<Iframe src='jindu.php?id=/$count' width='200' height='25' scrolling='no' frameborder='0'></iframe> "; }jindu.php 里面部分代码(其实是个进度条,呵呵): $count= $_GET['id'];set_time_limit(0); $step = 0; for ($i = 0; $i < $count; $i++) { sleep(1); $step+=10; echo '<script> document.getElementById("jindu").style.width = "'.$step.'px"; </script>'; flush(); } 1 删3000条数据再插3000条需要10多分钟???你程序怎么写的?插数据之前有很复杂的逻辑来获取这些数据?2 你说的这种动态回显的效果,用ajax可以实现,也比较简单。3 还有一种方法也可以实现,是服务器分块(chunk response)响应的方式。这个首先apache的支持比较好,nginx上我试过也可以实现,但是有些麻烦,需要修改几个参数。这个操作除了需要web server的支持,不同浏览器上的可能也有区别。原理是这样的。http协议规定一个request只能有一个response。但其实服务器是否response,是受到web server的缓冲区限制。到达浏览器后,还会受到浏览器的缓冲区限制。 怎么来对字符串进行替换? php 有像vs那样的调试工具吗 一个空间 多域名 绑定 急急急 那里有PHP +XML 类别列表的实实例 请推荐一个PHP开发的小型框架 怎样把多个pdf文件压缩成一个zip文件?急!!!!!!! kindeditor上传图片那里如何去掉上传网络图片的功能? mysql一表连多表,多级关联能查询吗? 关于DREAMWEAVER MX2004汉字显示问题 请问:如何使用phpmyadmin建立数据库、数据表? 关于网站产品结构的布署问题 求指导一些PHP、JavaScript的高级技术
当然,你可以用ajax10条10条的操作,如果你直接用分页跳转的话,就没有提示了,会在浏览器一直跳转执行
[code=javascript]
function Creat(jjsortid){
$.ajax({
type: 'POST',
url: 'Ajax_JJ.php?Action=CreatJJ&jjsort_id='+jjsortid+'',
data: '',
dataType: 'html',
success: function(data, status) {
var jdata=eval("("+data+")");//转换为json对象
if (jdata.error != 'OK'&&jdata.error != 'CONTINUE') {
MsgBox(1, jdata.error, "");
}
else{
$("#c1_"+jjsortid+"").html(eval($("#c1_"+jjsortid+"").html())+eval(jdata.id));
$("#c2_"+jjsortid+"").html(eval($("#c2_"+jjsortid+"").html())-eval(jdata.id));
if(jdata.error=='CONTINUE')
Creat(jjsortid);
}
}
});
}
$count=count(RemoveTestList);
echo "<Iframe src='jindu.php?id=/$count' width='200' height='25' scrolling='no' frameborder='0'></iframe> ";
}jindu.php 里面部分代码(其实是个进度条,呵呵): $count= $_GET['id'];
set_time_limit(0);
$step = 0;
for ($i = 0; $i < $count; $i++) {
sleep(1);
$step+=10;
echo '<script> document.getElementById("jindu").style.width = "'.$step.'px"; </script>';
flush();
}
2 你说的这种动态回显的效果,用ajax可以实现,也比较简单。
3 还有一种方法也可以实现,是服务器分块(chunk response)响应的方式。这个首先apache的支持比较好,nginx上我试过也可以实现,但是有些麻烦,需要修改几个参数。这个操作除了需要web server的支持,不同浏览器上的可能也有区别。
原理是这样的。http协议规定一个request只能有一个response。但其实服务器是否response,是受到web server的缓冲区限制。到达浏览器后,还会受到浏览器的缓冲区限制。