php - 如何通过 AJAX 脚本检查 HTML 文档中包含的文件是否发生更改?

标签 php javascript mysql sql ajax

为了练习和学习 JavaScript 和 AJAX,我正在为浏览器内 IM 客户端编写 JavaScript。

我需要能够检查文本文件的文件大小是否发生变化,该文本文件用作包含消息的 40-80 个 SQL 条目的临时存储,以便它可以更新显示。

目前,我正在使用 setInterval 函数使用简短的 PHP 脚本定期检查文件大小的变化,但这可能会导致问题,如果间隔太长,消息就会延迟,如果较短,则说明有很多php脚本运行速度很快,占用了服务器资源。

如果主要关注的是减少服务器资源使用,那么最好的方法是什么? (我在一台我拼凑起来的技术含量较低的 PC 上运行我的服务器(2GB 内存,2.8GHz AMD seperon 处理器))

最好,我想使用由某人发送消息触发的 AJAX 事件来执行此操作,即当用户 B 触发按 Enter 编辑文件的事件时,会触发用户 A 端更新 HTML 文件的函数

有什么想法吗?我对解决这个特定问题的任何方案持开放态度。我给出了我希望在特定语言中发生的事情的具体示例,以便更好地了解我正在尝试做什么。

如果有一种非 JavaScript/PHP 的方法可以做到这一点,我也愿意将其作为一种选择进行探索。

最佳答案

使用 PHP 执行此操作可能有点麻烦。您可以尝试执行类似 long polling 的操作您可以在其中保持 HTTP 请求打开,直到服务器有新数据要发送给用户。如果频繁发送消息,这可能不太理想。您可能需要考虑使用事件驱动的 Web 技术,例如 node.js类似于 Socket.IO .

无论如何,如果您想近乎实时地获取消息,您可能需要保持与服务器的连接。有方法可以使用WebSockets with PHP同样,但 PHP 并不是最适合这种情况的,因为它的设计目的不是让脚本长时间运行(另请参阅 What exactly entails setting up a PHP Websocket Server? )。

关于php - 如何通过 AJAX 脚本检查 HTML 文档中包含的文件是否发生更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17768491/

相关文章:

mysql - 尝试在现有的 mysql 数据库上构建 Rails 3.2 应用程序

MySQL选择重复项

php - 如何为 zend framework 2 restful 路由创建一个可选的路由参数

php - 通过 htaccess 阻止子域爬虫

php - MySQL 和 PHP 的问题

javascript - 为什么我的 JavaScript 链接在从 HTML 调用时不起作用?

javascript - jQuery为具有相同src的图像添加alt标签

php - 通过 php 将 mysql 数据库导出到 csv 在 4kb 后停止

javascript - 用正则表达式解释 javascript 代码

mysql - 根据天数和时间选择价格