我目前正在对在 Synology NAS 上运行的 Intranet 站点进行编码。由于 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) 需要它来显示图表。因此,我在“script”标签中动态地编写了一个javascript行。通过 URL 中传递的 perl 变量 (script.pl?day=07&month=06&year=2014),此变量的编写方式有所不同。
这一切都在 iPad 上显示并且运行良好。
我现在已经实现了滑动功能,并希望使用显示日期之前或之后一天的数据刷新图表,具体取决于向左或向右滑动。滑动功能也可以使用。
我的问题是,如何刷新/重写 javascript 变量而不需要刷新整个页面?它的工作原理只是使用 URL 变量中的新数据执行整个 perl 脚本,从而重写整个 html 页面。但我只想刷新图表,即图表的数据。
关于如何实现这一目标有什么想法吗?
非常感谢和最诚挚的问候, dmy
最佳答案
您需要使用AJAX 。完成您想要的操作的最简单方法可能是在服务器上设置一个端点,该端点运行 perl 脚本并输出图形函数可以理解的 JSON。当页面加载时,发出一个请求,为您提供默认图表;当用户滑动时,发出一个新请求,为您提供适合该操作的图表等。
如果您使用jquery,则可以使用this function .
关于javascript - 从 Perl 创建 HTML 页面,包括。 JavaScript : Refresh of Javascript variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24733376/