11

有一些很棒的 Web 开发工具可以让开发人员的生活变得轻松。LiveReloadCodeKit等应用程序就是很好的例子。

我对它们感兴趣的只是当文件更改写入硬盘驱动器时,它们使网页在网络浏览器(无论是 Chrome、Firefox 或其他什么)中实时重新加载的方式。

他们实际上是如何做到的?是否有 Web 浏览器供应商公开的 API 来执行此操作?或者它只是在到达浏览器之前注入到网页的自定义服务器端脚本(实际上不是由网络开发人员编写的),并且当驱动器上的文件发生更改时会发生一些 Ajax 魔法。

我计划在 Python 或 Vala (Linux) 和 .NET (Windows) 中开发类似的东西,所以如果有可用的文档,请告诉我。

4

2 回答 2

5

来自LiveReload 常见问题解答

为了与您的浏览器通信,LiveReloads 需要将其 JavaScript 代码注入您的网页。有3种安排方式:

  1. 手动将脚本标签添加到您的 HTML 代码中,或者
  2. 安装浏览器扩展(激活后,将脚本标签即时添加到访问过的页面),或
  3. 为您的 Web 框架使用插件(在服务请求时动态添加脚本标签),目前仅适用于 Rails/Rack。

另外,我知道这个问题很老,但对于那些也来这里搜索“ livereload python ”的人来说,有一个很棒的用 python 编写的 LiveReload 服务器

于 2014-09-01T19:37:28.507 回答
0

这些通常(总是?)基于一个相当简单的概念 - 每隔一段时间,一些客户端代码会触发询问服务器脚本文件是否已更新。当且仅当它具有时,它才会重新加载页面 - 或者,对于某些网站(想想 SO 和一些社交网站),它只会下载新信息并就地加载。

对于您在本地沙箱中开发的情况,他们有时还可以侦听操作系统的“文件已更改”信号,而不必设置能够响应 AJAX 请求的服务器。大多数操作系统都提供这些信号——例如,在 Linux 上你有inotify。从他们的网页上可以看出,LiveReload 使用了这样的系统——他们套件的一部分是一组浏览器插件,这些插件可能为操作系统服务提供 Javascript API,并调整浏览器沙箱规则以允许它。

于 2012-06-10T08:18:33.937 回答