动态弹出窗口'通过调用一个永远运行并返回's每个周期后的数据

Dynamic pop up's on a google map by calling a cgi script that runs for ever and return's data after every cycle

本文关键字:返回 运行 周期 数据 永远 一个 调用 动态 窗口      更新时间:2023-09-26

我正在尝试在机构级别实现类似谷歌公共警报的功能。

我将在主页上显示机构地图,如果有事件,我将尝试动态插入该事件的标记,即用户不必刷新地图。

不幸的是,要做到这一点,我必须使用一种名为IF-MAP的技术,这迫使我使用一个不断重复循环直到中断通过的cgi脚本。

我的流程是这样的:

  1. 带有googlemap和ajax脚本的网页,该脚本调用我的cgi脚本以获取有关标记的数据
  2. 一个perl-cgi脚本,它不断轮询IF-MAP数据库,以获取校园内警报的任何更新。在每个轮询周期结束时,它会返回一些数据,以便网页显示标记

我面临的问题是,

在cgi脚本完成执行之前,网页不会显示标记。

是否可以使用我的方法在地图上插入动态警报?如果是,你能建议我怎么做吗?如果没有,我听说过一种名为socket.io和node.js的东西,它们使我的连接有状态。这些技术能帮我解决问题吗?

谢谢。

你能不能不简单一点?

  1. 从cron作业或守护进程轮询IF-MAP数据库
  2. 将结果写入JSON格式的文件
  3. 确保该文件的Web服务器缓存/超时等设置正确
  4. AJAX-在计时器上获取结果文件,允许304状态不变为您做艰苦的工作

你可以尝试用websocket做一些复杂的事情(我认为Perl的Mojolicus框架开箱即用地支持它们),但你仍然需要一个单独的过程来查询这个IF-MAP数据库。