这里通过一个示例,演示使用 js 为费时的页面改善用户体验。
创建 JavaScript 页面处理器
多少次单击网页后,只看到 IE 的那个小球不停的转动,好像永不停息?是你的因特网连接速度下降了吗?和后端系统的连接有错误了吗?系统比较慢?这些问题通常会使新的基于 Web 的解决方案变得复杂。
遇到这种情况,应向用户提供进度信息,让他们知道系统正在处理他们的请求,以便帮助用户重建对程序的信心,改善用户体验。
提供状态信息的一个常用方法是使用 js 创建一个标准的页面处理器。用户从一个页面导航到另一个需要长时间处理的页面时,页面处理器立刻出现并显示一个标准信息(可能是滚动的文本)。同时,被请求的页面在后台下载。一旦结果页面可用,页面处理器消息就被请求的页面取代。
把 js 代码加到目标页面不能解决处理延时的问题。因为在页面处理结束和呈现的 HTML 返回给用户前这些代码不会被处理!但是,你可以创建一个通用的页面处理器,由它处理网站中所有耗时的页面的请求。
创建这样一个页面处理器,需要响应 onload 和 onunload 事件。下面的 PagePrecessor.aspx 页面示范了这种模式,它显示了一个表格,添加了一些文本及事件:
>
<form id="frmPageLoader" runat="server" method="post">
<div>
<table width="99%" border="0">
<tr>
<td align="center" valign="middle">
<span id="MessageText">Loading Page - Please Wait</span>
<span id="ProgressMeter"></span>
</td>
</tr>
</table>
</div>
</form>
</body>