2009-07-03 79 views
0

我正在php/mysql中创建数据输入表单。在那里我添加了许多下拉菜单和自动完成的文本框,它们异步查询数据库并获取数据。我想告诉某些类型的客户端和服务器之间的交互是一直走。安迪的用户,所以我把一个元素隐藏表单显示基于AJAX请在多个页面上等待

<div id="wait" style="background-color:white;position:absolute;top:240px;left:360px;width:70px;height:50px;visibility:hidden;border: 1px solid black;padding:20px;"> 
<img src="images/wait.gif" style="position:relative;top:0px;left:25px"><br /><br />Please wait... 
</div> 

,并在Ajax组件的方法handleHttpResponse我做了以下

if (http.readyState == 4) { 
    document.getElementById('wait').style.visibility = "hidden"; 
    alert('The server script has now completed'); 
} else { 
    document.getElementById('wait').style.visibility = "visible"; 
} 

上面的函数位于当前页面中包含的脚本文件ajax.js中,以及每个需要ajax的页面。

现在这个工作对我很好的一个文档,但我有以下查询

  • 如果我想有,只要在任何网页上执行一个AJAX请求类似的操作,用户必须是显示消息“请随同播放动画一起等待”。如何重写我的模块,以便我不必在每一页上放置DIV。我该怎么办?

    • 我想加入类似的功能,但它必须在页面加载之前发生的,它应该显示进度条,以及,我怎么能去了解它

    • 说我目前的网页利用此功能在3个位置同时显示3个请等待消息吗?

希望我的问题是非常明显的。 谢谢

+0

你使用什么服务器端语言/框架?大多数MVC框架都支持布局,只替换实际的页面内容。您可以在布局中放置消息。根据您显示消息的位置,您也只能显示一次,然后等待所有请求都完成。 – Daff 2009-07-03 08:12:40

回答

0

有一种方法可以实现你正在尝试做的事情。例如,如果您使用PHP,则可以将HTML放在.inc或.php文件中,并将其包含在任意位置,即使在多个页面中也是如此。

  1. 所以,如果使用PHP,尝试这样的事情:

    <?php //inc_loader.php ?><div id="wait" style="background-color:white;position:absolute;top:240px;left:360px;width:70px;height:50px;visibility:hidden;border: 1px solid black;padding:20px;"> 
    <img src="images/wait.gif" style="position:relative;top:0px;left:25px"><br /><br />Please wait... 
    </div> 
    

现在只是包括上述文件,无论你想,像:

<?php include("inc_loader.php"); ?> 

代码包括可能会根据您使用的服务器端语言而有所不同。

2.也不建议在同一文档的多个位置使用相同的代码,因为您使用的是id =“wait”。一个id在文档中应该是唯一的,所以在多个地方使用它并不具有它的含义。如果你想避免重复,那么你可以尝试使用类,即class =“wait”,如果这可以帮助你。

让我们知道是否帮助你。