转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
无刷新技术不显示“正在加载数据”的提示         ★★★★

无刷新技术不显示“正在加载数据”的提示

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1120 更新时间:2010/6/23 22:57:42

  当我们在利用无刷新技术制作网站的时候,一般都是通过AJAX技术或XMLHTTP技术,根据客户端的操作,获取服务器端的数据,最后显示到客户端!

  在此过程,就涉及到了这样的状态,即请求服务器、接收服务器回传的数据、显示数据;

  以上的三种状态,都是在客户端的浏览者未觉察的状态下发生的,如果您要获取的数据量非常大,加上没有任何的提示,那么,会导致获取数据时间较长,使浏览器处于停滞状态,最后的结果就是,访客以为您的网站带有病毒或带有木马,经常会吓跑您的客户。

  针对这样的情况,我们应当使用提示的功能,即在请求服务器的时候,就显示提示,让浏览者有一个心理上的准备!

  比如下面的代码:

function GetServerData()
{
  if (MyXmlHttp.readyState < 4)
  {
    px.innerHTML="<img src='Img/Gif/loading.gif'/>正在加载数据,请稍后……<br>";
  }
  if (MyXmlHttp.readyState == 4)
  {

    //数据获取成功,这里就是您的代码了!
  }

}

  以上代码就是显示数据加载状态的提示与显示已获取的数据。

  上面的代码,存在这样的问题,即,如果您获取的数据量太小,根本就无法看到提示,而是直接显示结果。

  但是,并非是提示信息代码没有执行,而是已经执行了,只是看不到而已。我们可以验证一下是否已执行,将如上部分代码改为:

  if (MyXmlHttp.readyState < 4)
  {
    px.innerHTML="<img src='Img/Gif/loading.gif'/>正在加载数据,请稍后……<br>";

    alert(px.innerHTML);
  }

  很明显,通过以上的改动之后,我们就可以看到提示效果了,现在我们应该明白了,提示代码不是不执行,而是由于获取的数据量太小,加上代码都是在同一函数执行的,时间间隔非常短,因此看不到提示效果。

  针对以上问题,我们可以使用JS里面的setTimeout()函数或setInterval()来解决!或者那您在服务器端代码更新之前加上个System.Threading.Thread.Sleep(1000);即可。


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台