首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP中的加载栏

PHP中的加载栏
EN

Stack Overflow用户
提问于 2012-04-06 21:18:34
回答 5查看 676关注 0票数 1

这两天我一直在谷歌上搜索,找不到我想要的东西。

我有SMSmobile工具正在开发的PHP,它允许客户发送短信批量,当我的客户按Send按钮,浏览器将继续加载,直到短信被发送到他的所有联系人(可能是100000个联系人或更多),所以它将从2-5分钟。同时,如果客户端在同一页面上按下浏览器、Refresh按钮或任何其他按钮,都会破坏发送过程。

我需要显示一个弹出式进度条,防止用户在Sending过程结束之前执行任何操作。

有什么建议吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-04-06 21:23:46

试试这个:

代码语言:javascript
运行
复制
function checkRefresh()
{
if( document.refreshForm.visited.value == "" )
{

    document.refreshForm.visited.value = "1";


}
else
{
document.write ('
$(function2() {
    // a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore!
    $( "#dialog:ui-dialog" ).dialog( "destroy" );

    $( "#dialog-modal" ).dialog({
        height: 140,
        modal: true
    });
});
$(function() {
    $( "#progressbar" ).progressbar({
        value: 59
    });
});
')
}
} 

确保你有jQuery!

MarkUp:

代码语言:javascript
运行
复制
<div class="demo">
<div id="dialog-modal" title="Basic modal dialog">
<div id="progressbar"></div>
</div>
</div>

然后用这个替换你的body标签:

代码语言:javascript
运行
复制
<body onLoad="JavaScript:checkRefresh();">

并将其添加到您的HTML中:

代码语言:javascript
运行
复制
<form name="refreshForm">
<input type="hidden" name="visited" value="" />
</form>

无论如何,这会检测到重新加载并执行加载条,这将阻止它们重新加载(希望如此)

票数 0
EN

Stack Overflow用户

发布于 2012-04-06 21:23:37

使用某种锁,甚至是文件锁。然后使用ajax每X秒轮询一次,查看作业是否完成。

代码语言:javascript
运行
复制
function send() {
   if ( file_exists('/tmp/' . $session_key . '.lck' ) ) return;
   touch ( '/tmp/' . $session_key . '.lck' );
   # do the actual job
   # ...
   unlink( '/tmp/' . $session_key . '.lck' );
}
票数 2
EN

Stack Overflow用户

发布于 2012-04-06 21:29:22

我的解决方案是一个后台运行的脚本(cron job),它只是站在那里读取某种队列列表(SQL Table),并处理它看到的所有新条目。

也许一个小的客户端脚本调用后面的东西,只是计算行数并将其返回给前端。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10044046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档