首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅当csv行计数更改时刷新页面

问仅当csv行计数更改时刷新页面
EN

Stack Overflow用户
提问于 2012-09-28 22:24:43
回答 1查看 1.3K关注 0票数 1

从我所做的研究来看,我认为我可能不得不使用Ajax,但我并不真正熟悉它,而且我似乎找不到适合我的函数的正确答案。

我没有使用数据库(也许我应该使用,但我正在寻找一个更短期的修复方法)。我使用的是一个csv文件,用户的数据是通过PHP输入的。

我的php正在遍历csv文件并显示一个包含内容的表。它只是一列twitter用户名。

代码语言:javascript
复制
<php?    
echo "<table>\n";
$file = file("Twitter.csv");
$file = array_reverse($file);
foreach($file as $f){
$string=$f; 
$string=str_replace("\r\n","",$string);
    echo "<tr>\n";
            echo "<td><a href='http://twitter.com/".$string."' target='_blank'><img src='https://api.twitter.com/1/users/profile_image?screen_name=".$string."&size=bigger' border='0'></td>\n<td>\n<a href='https://twitter.com/".$string."' class='twitter-follow-button' data-show-count='false' data-lang='en' data-size='large'>Follow @".$string."</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src='//platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document,'script','twitter-wjs');</script>";
    echo "</td>\n</tr>\n";
    }
echo "\n</table>";
?>

一旦用户授权了twitter应用程序,并且我获得了他们的用户名,他们将被重定向到列出其他人姓名的页面。但是,我希望该页面在csv文件的行数发生变化时进行更新。

我需要能够每x秒运行一次脚本,以获得行计数,如果它已更改为刷新。

我想逻辑很简单:

代码语言:javascript
复制
$linecount = count(file('Twitter.csv'));
every x seconds{
    $checkcount = count(file('Twitter.csv'));
    if ($checkcount != $linecount){
     refresh page
    }
 }

我觉得逻辑是正确的--我只是没有受过足够的教育,无法弄清楚如何编写代码才能工作。

如果文件不更新,页面将不会刷新,但代码仍将每隔x秒执行一次,直到文件发生更改。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-28 22:46:55

该解决方案只需几个步骤即可完成(未经测试):

  • 您的PHP脚本将filemtime('Twitter.csv')的当前值写入到JavaScript块中:

echo 'var currentTS = ',(int)filemtime('Twitter.csv'),';';

创建一个返回Twitter.csv修改时间的

  • 小脚本

数组回声时间(

(‘ts’=>文件时间(‘Twitter.csv’);

  • 编写一个JavaScript函数,该函数使用一些简单的jQuery通过AJAX获取时间戳:

函数myFunction() { $.ajax({ url:'/path/to/check_mod_time.php',超时时间: 2000,//不要等待太久成功: function(data) { if (currentTS < data.ts) { location.reload();} });}

使用setInterval()每X秒调用一次

  • 函数

setInterval(myFunction,5000) //每5秒运行一次

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12641923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档