2012-03-28 31 views
0

好吧,所以我想知道GMail和类似的东西如何在没有整个屏幕变空白的情况下更新那里的电子邮件。刷新页面没有屏幕变空白?

我正在致力于web tools site here。正如您可以在右侧边栏中看到的那样,有一个新闻订阅源显示了某些成员的近期事件。

这是一个简单的PHP脚本,显示最新的事件,这些事件存储在MYSQL表中。这个PHP脚本然后是边栏的iframed。

我希望边栏自动更新。它可以在一段时间间隔(比如每10秒钟)更新一次,也可以在新事件添加时更新。

我尝试过每隔5秒进行一次元刷新(在PHP脚本上)......但它并不能很好地工作。每隔5秒,整个侧栏就会变成空白,然后重新出现。此外,每当侧边栏刷新时,站点的装载轮也会不断出现。

有没有更简单的方法来做到这一点?也许使用某种类型的javascript事件来检查新事件,然后把它们吐出来,而不是刷新整个页面?

感谢您的帮助!

编辑:好的,谢谢你的帮助!我用AJAX去了!但是,我现在遇到了一个不同的问题...请继续阅读...

我正在使用JavaScript来显示在每个事件的右下角的时间。我正在使用类似于此的代码...

<div class="event"> 
<p>The event text</p> 
<script type="text/javascript"> 
document.write(get_time(1332900003)); 
</script> 
</div> 

这将是实际存储在数据库中的HTML。问题是AJAX抓取这段代码,将它分发出去(放在iframed页面上),然后时间片段没有被执行(其他一切正常)。

我宁愿在PHP上使用JavaScript来显示时间,因为用JS你不必担心时区差异。

无论如何我可以解决这个问题吗?再次感谢您的快速响应! :)

+6

它被称为AJAX。 – j08691 2012-03-28 00:32:40

+0

好的......谢谢我会考虑到:) – hellohellosharp 2012-03-28 00:33:45

+0

以下我的回答后续。如果你需要一些帮助,随时随地挑选并运行,请随时咨询我的私人信息,如果可以的话,我会很乐意随时为您提供帮助。 – chris 2012-03-28 00:46:39

回答

2

从本质上讲,如果你想模仿的概念GMAIL和其他各种网站如何渲染页面,然后在那里处理页面,而不会在事务之间重新加载页面,如j08691在对您的评论中所指示的那样AJAX是您寻找的方法,但它需要JavaScript和一些服务器端脚本知识如你的情况下的PHP。

为了方便构建一个甚至只是一个网站的一个可扩展的软件,我建议寻找一个像jQuery,Prototype,Dojo或类似的JavaScript库。我的个人风格是jQuery,因为我个人认为它非常稳定,有一个大型的支持社区,所有人都很容易学习。

它将有助于快速开发基于JavaScript的代码,这些代码将跨浏览器兼容,而无需在原生JavaScript中编写冗长的脚本,以达到您使用备份库更容易实现的目的。

http://www.jquery.com - 核心库

http://www.jqueryui.com - 库

加有小插件的几十万,你可以拿起,以帮助开发你的整体用户体验,以及更快的扩展。

+0

谢谢你克里斯!我确实用ajax去了,但现在我遇到了一个不同的问题,有什么想法?谢谢! – hellohellosharp 2012-03-28 02:20:45

+0

你有什么问题? – chris 2012-03-28 05:31:26