LiveReload(和其他类似的应用程序)在技术上如何工作?

Kus*_*hal 11 .net python browser live

有一些很棒的网络开发工具可以让开发人员的生活变得轻松.像应用LiveReloadCodeKit都是很好的例子.

我对它们感兴趣的是当文件更改写入硬盘时,它们在网页浏览器(无论是Chrome,Firefox还是其他)中进行网页实时重新加载的方式.

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

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

Gui*_*ros 5

来自LiveReload 常见问题解答

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

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

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


lvc*_*lvc 0

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

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