从ubuntu服务器向浏览器推送数据

时间:2014-11-15 11:49:31

标签: ajax perl ubuntu push-notification push

我有一个Web应用程序,它几乎是一个Web scraper。通过ajax调用从客户端的浏览器调用web scraper脚本(基本上启动一个PHP脚本,然后调用Perl脚本来完成繁重的工作)。因为脚本正在抓取大量数据,所以它需要一两分钟才能完成。我试图找出将数据从perl脚本实时推送到用户浏览器以显示某种“进度”的最佳方法,而不仅仅是显示加载动画一两分钟。 该应用程序托管在我自己的Ubuntu VPS上,因此我可以使用我喜欢的任何技术。解决这个问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以使用nodejs和进度插件(https://www.npmjs.org/package/progress

答案 1 :(得分:2)

由于您已经在使用perl,因此您可能会考虑将脚本转换为“异步”应用程序,该应用程序可以使用perl进行擦除并“推送”某种更新。您可以使用类似Mojolicious或许多Plack / PSGI服务器替代品之一(例如TwiggyStarletKelp 等。 cf CPAN )这将允许您将脚本作为单独的应用程序运行。

使用部分抓取结果更新页面可能有点棘手,但是如果你能弄清楚如何让你的刮刀以这种方式从教程中运行,并且“如何”输入这些文章:

并审核有关使用它们的讨论:

..然后,您可以将更新后的脚本挂钩到现有的服务器基础架构中。实现此目的的一种方法是将闪亮的新“websocket脚本”连接到目录(使用像ProxyPass或其等效的Apache指令),客户端请求可以访问它。

-

另请参阅@creaktive's "ultimate" answer to the web scraper in Modern Perl question http://blogs.perl.org示例...