【问题标题】:Creating HTML page from Perl incl. Javascript: Refresh of Javascript variable从 Perl 包括创建 HTML 页面。 Javascript:刷新 Javascript 变量
【发布时间】:2014-09-04 04:23:45
【问题描述】:

我目前正在编写我的 Intranet 站点,在 Synology NAS 上运行。由于 Intranet 页面(通过 Javascript)无法访问 NAS 上的“www”文件夹之外的任何文件夹,我不得不在服务器端使用 Perl 脚本进行此操作,因为应该显示的数据位于“www”文件夹之外NAS。

perl 脚本现在编写整个 html 页面,包括通过 dygraphs 绘制图表所需的 Javascript 代码。 perl 脚本所做的最重要的事情是处理一个 .csv 文件并写入

var $chartdata = [["2014/07/06 12:05", 15], ["2014/07/06 12:06"], 15.5, ...];

这是 dygraphs 库 (dygraphs.com) 需要它来显示图表的系列变量。因此,我在“脚本”标签中动态编写了一个 javascript 行。使用 URL 中传递的 perl 变量 (script.pl?day=07&month=06&year=2014),这个变量的写法不同。

这一切都显示在 iPad 上并且工作正常。

我现在已经实现了滑动功能,我想用显示日期之前或之后一天的数据刷新图表,这取决于向左或向右滑动。滑动功能也可以。

我的问题是,如何在不需要刷新整个页面的情况下刷新/重写 javascript 变量?它只使用 URL 变量中的新数据执行整个 perl 脚本,然后重写整个 html 页面。但我只想刷新图表,即图表的数据。

关于如何实现这一点的任何想法?

非常感谢和最好的问候, dmy

【问题讨论】:

    标签: javascript html perl dygraphs


    【解决方案1】:

    您需要使用AJAX。做你想做的最简单的方法可能是在你的服务器上设置一个端点,它运行 perl 脚本并输出你的图形函数可以理解的 JSON。当页面加载时,发出一个为您提供默认图表的请求;当用户滑动时,发出一个新请求,为您提供相应的图表,等等。

    如果你使用 jquery,你可以使用this function

    【讨论】:

    • 谢谢帕特里克。然后,我将尝试从 perl 脚本中删除 html 编写,并尝试按照您所说的方式获取数据,尽管我不太确定如何做到这一点。
    • 我不写 perl,所以我不确定这在你的语言中是什么样子,但你基本上想要构建一个看起来像这样的字符串:"{'response': [['2014 /07/06 12:05', 15], ['2014/07/06 12:06'], 15.5, ...]}" 并让 jquery 将其解压缩为 javascript 数据结构。另外,如果您觉得它有帮助,请点赞和/或接受这个答案。
    • 我可以毫无问题地在 perl 中构建该字符串,我只是不确定 jquery 代码(解包)的样子。如果可以的话,我会支持你,但是“你需要 15 声望”不允许我(还)。
    猜你喜欢
    • 2013-06-19
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多