【问题标题】:How to show a Prelaoder/Loading animation/gif/percentage while the included PHP page processes/loads?如何在包含的 PHP 页面处理/加载时显示 Prelaoder/加载动画/gif/百分比?
【发布时间】:2011-07-26 09:06:52
【问题描述】:

我在 PHP 主页面中包含一个 PHP 脚本。

帮助我“如何在包含的 PHP 脚本处理和加载时显示 Preloader/loading 动画或 gif 或 swf 或简单的加载百分比?” 这是我想显示相同的代码 sn-p(请参见最后一行代码):

<body onLoad="document.forms.form1.from.focus()">
<font face="Calibri">
<table cellpadding="10">
   <form action="<?=$_SERVER['PHP_SELF']?>" method="post" name="form1">
<tr>
<td width='25%'>
    <fieldset>
        <legend>Enter From & To Date</legend>
        <table border='0'>
        <tr>
            <td>From </td>
            <td><input type="text" name="from" /></td>
        </tr>
    </fieldset>
            <input type="submit" name="submit" value="Submit" />
</td>
</tr>
</form>
</table>
<?  
//Form submitted
if(isset($_POST['submit'])) 
{
    //No errors, process
    if(!@is_array($error)) 
    {  
 HERE IS WHERE I WANT THE LOADING TO TAKE PLACE
//HERE I INCLUDE THE SCRIPT

另外,如果我可以延迟 PHP 脚本的显示,直到它完成处理。

【问题讨论】:

  • 你的代码中有不少不好的地方:&lt;font&gt; 已经被弃用很久了,@-error-suppression 往往是代码不好的标志,使用只存在的字体在现代 Windows 版本上,使用内联 JS (onload=) 而不是附加适当的事件侦听器。

标签: php html loading


【解决方案1】:

&lt;body&gt; 之后放置一个包含加载屏幕的&lt;div&gt;(或至少在耗时的加载发生之前)。在最后(或加载屏幕应该覆盖的长部分之后)添加一些 JavaScript 来隐藏/删除包含加载屏幕的 div。

【讨论】:

  • 请举一个相同的例子,特别是
    标签代码
【解决方案2】:

这是我从互联网上下载的脚本的修改版本。不记得我是从哪里得到的,抱歉。

<html>
<head>
<script type="text/javascript">
function swapdiv() { 
    //Hide the loading div
    if (document.getElementById) { // DOM3 = IE5, NS6 
        document.getElementById('loadingdiv').style.display = 'none'; 
    } else { 
        if (document.layers) { // Netscape 4 
            document.loadingdiv.display = 'none'; 
        } else { // IE 4 
            document.all.loadingdiv.style.display = 'none'; 
        } 
    } 

    //Show the results div
    if (document.getElementById) { // DOM3 = IE5, NS6 
        document.getElementById('resultdiv').style.display = 'block'; 
    } else { 
        if (document.layers) { // Netscape 4 
            document.resultdiv.display = 'block'; 
        } else { // IE 4 
            document.all.resultdiv.style.display = 'block'; 
        } 
    } 

    window.onunload = null;
    return;
} 
</script>
</head>
<body>
<form name="form1">
</form>
<div id='loadingdiv' align='center'><img src='../images/loading.gif' alt='Loading...' title='Loading...' /></div>
<div id='resultdiv' style='display:none;'>
<!-- Do some html stuff here. This div block is hidden until the end of page load -->
<?php
    //Query database
    //Show results
?>
</div>
<script type='text/javascript'>
    //this is called after page loaded
    window.onload=swapdiv;
</script>
</body>
</html>

【讨论】:

  • SO 的重点是教别人。像这样的脚本,没有额外的 cmets,在这方面毫无价值。您能否编辑帖子以指出具体细节,为什么它会以这种方式工作?等等。
  • @Dennis Haarbrink 公平评论。当我的示例页面加载时,它会在页面上显示一个 div(名为 loadingdiv),而所有其他元素都被隐藏(它们位于名为 resultdiv 的 div 中)。页面加载完成后,调用页面底部的swapdiv()函数,隐藏名为loadingdiv的div,使resultdiv可见。您可以在 facebook 等网页上看到这种效果。
猜你喜欢
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
  • 2011-08-15
相关资源
最近更新 更多