2012-03-03 80 views
1

我想知道它是一个很好的方式来自动加载新的内容,而不刷新页面。例如,之前在Twitter趋势中,当有人发布相关趋势内容时,它会自动加载新提交的内容而不加载页面。php jQuery的自动加载内容

我尝试了一些方法,例如(拉法),在我的javascript我会设置的时间间隔加载FRM SQL查询:

var auto_refresh = setInterval(function() { 
     $('#myLinks').load('http://domain.com/link/loadlatestnews').fadeIn(2000); 
    }, 400); // refresh every 400 milliseconds 

,但是这是一个好主意,因为它需要在客户端不断试图从sql每400毫秒加载一次。

是否有可能推式方法,如果有一个新的内容在MySQL中,设置一个事件回调?

回答

0

您可以通过这种方式

<script type="text/javascript" src="../js/jquery.min.js"></script> 
     <script type="text/javascript"> 
      // setTimeout(function(){ window.location.reload(); }, 2000); 

       $.ajax({ 
       success:function(){ 
        setTimeout(function(){ window.location.reload(); }, 2000) 
       } 
       }); 

     </script> 
+0

他是不是要求页面重新加载他要求的方法刷新页面上的内容每隔x分钟通过ajax – Shaheer 2012-03-03 05:04:42

+0

是我已经使用ajax仅用于页面刷新,在您的系统上运行 – 2012-03-03 05:13:50

+0

它不是页面重新加载阿贾克斯使这刷新,, – 2012-03-03 05:14:25

2

你现在在做什么,自动刷新是个好主意,但不轮询服务器每400 MS,如果它是没有太大的强大。另外,您应该在每个请求上向服务器发送最后的结束日期,以便仅加载该日期之后的内容,并且每次请求时都会返回新的最后日期。这样你就可以检查服务器是否有新的记录,如果有的话就启动一个函数。

+0

嗯这是一个很好的方式来做..所以我不会消耗这么多的资源。我知道,太多的mysql加载导致CPU负载高 – nuttynibbles 2012-03-03 05:16:16

+0

嗨,我有一个问。如果有相同的时间戳r 2记录什么..如何获得记录呢?我的SQL查询是:SELECT * FROM'records' WHERE 1 AND dateTimeSubmitted> 1330754710 ORDER BY dateTimeSubmitted LIMIT 1 – nuttynibbles 2012-03-03 06:56:50

+0

它们都会自动返回。 – Shaheer 2012-03-03 07:25:17

0

这取决于。你有没有访问你的服务器软件?如果你愿意配置它或不。

你需要的是彗星服务器:http://en.wikipedia.org/wiki/Comet_(programming)

但如果您的网站没有大的你,你正在使用现在只可以使用定时轮询技术。只要让间隔更长。 400毫秒是短路的方法。同样尝试按照Shaheer的建议优化你的SQL。