Javascript没有反映文件的更改

时间:2012-05-14 06:16:40

标签: php javascript file

所以,我在这里有点困惑。

我正在慢慢进入ajax或HTML5 SSE,因为我有一个列表,从长远来看,我想更新而无需用户刷新。但是,宝贝步骤在这里,我开始使用一个简单的函数,该函数应该告诉我列表从这里读取的文件何时更改,从另一台计算机插入条目。

CODE:

<script type='text/javascript'>
function CheckForChange(){
    alert("<?echo (count($listArray)) . ' and ' . count(file($filename_noformat))?>");
}

setInterval("CheckForChange()", 7000);
</script>

listArray是PHP变量,它在页面刷新时保持页面上显示的列表,从文本文件中逐行读取(我正在努力移动到数据库,稍后) 由于PHP变量只能在加载页面时执行,因此PHP只会反映PHP执行时文本文件中的内容。

但是使用Javascript和setInterval函数,它不应该能够执行PHP来检查函数执行时(每7秒)文本文件中的内容吗?因为它不是,我不明白为什么不。

我尝试将第4个帖子插入手机列表中,手机的警报更改为4和4,但计算机仍然显示3和3.我希望它说3和4。

由于

2 个答案:

答案 0 :(得分:2)

setInterval()在您的页面中执行本地javascript,而不是基于服务器的PHP。如果您希望它在不重新加载页面的情况下向服务器发送内容,则必须使用ajax调用实际向服务器发送一些内容,这可能会导致某些PHP执行。

提示 - 查看浏览器中的“查看/来源”,查看页面中的实际内容。您的网页中没有PHP。创建页面时,PHP在服务器上运行一次。

答案 1 :(得分:1)

没有

  1. PHP在服务器上运行并输出一些文本。
  2. 服务器将该文本发送到客户端(浏览器)。
  3. 然后,浏览器会将该文本解释为HTML和JavaScript。
  4. PHP只运行一次。它生成的JavaScript函数会重复运行,但从JavaScript的角度来看,该函数中包含一个字符串文字,而不是可执行的服务器端代码。

    如果要运行PHP,则必须向服务器发出新的HTTP请求。这需要重新加载页面或使用Ajax。