所以,我在这里有点困惑。
我正在慢慢进入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。
由于
答案 0 :(得分:2)
setInterval()
在您的页面中执行本地javascript,而不是基于服务器的PHP。如果您希望它在不重新加载页面的情况下向服务器发送内容,则必须使用ajax调用实际向服务器发送一些内容,这可能会导致某些PHP执行。
提示 - 查看浏览器中的“查看/来源”,查看页面中的实际内容。您的网页中没有PHP。创建页面时,PHP在服务器上运行一次。
答案 1 :(得分:1)
没有
PHP只运行一次。它生成的JavaScript函数会重复运行,但从JavaScript的角度来看,该函数中包含一个字符串文字,而不是可执行的服务器端代码。
如果要运行PHP,则必须向服务器发出新的HTTP请求。这需要重新加载页面或使用Ajax。