假设我在一个页面中有15个或更多帖子。 while循环中的代码如下所示
<div class="post" id="<?php echo $postID?>">
<h1><?php echo $title;?></h1>
<div class="postmeta">
posted by <?php echo $author;?> , <?php echo timeAgo($postDate);?></div>
</div>
这只是一个例子!所以timeAgo()函数将unix时间戳1329569847转换为人类时间11分钟前。如何让它与ajax实时同步,我的意思是在5分钟之后改为16分钟前,4分钟后改为20分钟前,这将影响所有帖子。
所以我设法通过 chenio 和 TheShellfishMeme (啤酒)使其成功。
这就是做魔术的代码
<span class="timestamp" id="5" postdate="1329576793"></span><br/>
<span class="timestamp" id="8" postdate="1329576795"></span><br/>
<script>
updateTimestamps();
setInterval(updateTimestamps, 60000);
function updateTimestamps(){
$(".timestamp").each(function(i){
var timestamp = $(this).attr("postdate");
var postID = $(this).attr("id");
$.ajax({
type: "POST",
url: "myURL",
data: "postID="+ postID +'×tamp=' + timestamp,
cache: false,
success: function(html){
$(".timestamp#"+postID).html(html);
}
});
});
}
</script>
答案 0 :(得分:2)
我使用像http://jsfiddle.net/rXFnn/这样的数据属性来将unix时间戳添加到div中的一个span,这意味着包含'time ago'字符串。 然后将timeAgo逻辑移植到javascript并使用setInterval每分钟更新一次。
不需要为简单的事情做AJAX,但请注意下面的示例使用jQuery。
为了完整性,这里是代码:
<div class="postmeta">
posted by Foo , <span class="timestamp" data-timestamp="1329573254200"></span> ago
</div>
<script>
updateTimestamps();
setInterval(updateTimestamps, 60000);
function updateTimestamps(){
$(".timestamp").each(function(i){
var timestamp = $(this).data('timestamp');
// Put your time ago logic here
var timeAgo = timestamp;
$(this).text(timeAgo);
});
}
</script>
答案 1 :(得分:1)
使用jquery是一个很好的形式。 这是一个例子:
<script src=jquery.js"></script>
<script>
<script>
var auto_refresh = setInterval(
function()
{
// here put a url to a script to calculate time posted ago
$('#someid').load('someurl');
}, 60000);
</script>
<div class="post" id="<?php echo $postID?>">
<h1><?php echo $title;?></h1>
<div class="postmeta" id='someid'>
posted by <?php echo $author;?> , <?php echo timeAgo($postDate);?></div>
</div>
其他形式是:
..... continue
$.ajax({
// here put a url to a script to calculate time posted ago
url: 'url',
success: function(data) {
$('#someid').html(data);
}
});
......
http://api.jquery.com/jQuery.ajax和 http://designgala.com/how-to-refresh-div-using-jquery/
我希望这可以帮到你