如何在没有页面刷新的情况下每10秒在本地重新加载一个JS文件?

时间:2016-01-18 17:02:07

标签: javascript jquery json html5

我有一个本地(这里没有使用Web服务器)网页,我想读取一个名为sample.json的文件,该文件也是我的机器的本地文件。

经过大量谷歌搜索和阅读有关安全漏洞和javascript被锁定的方式后,我最终决定只更改sample.json的内容,以便在我的json文件中按照以下代码:

var obj = {
"invoices":[
    {"open":"3","priority1":"2","priority2":"1","p1":"1400","p2":"1603","p1":"1301","p4":"1351"},
    {"supplier":"6","priority1":"3","priority2":"3"},
    {"client":"7","priority1":"3","priority2":"4"}
]
};

现在我的html中有:

<script type="text/javascript" src="samples/sample.JSON"></script>

现在我想每10秒重新读取一次该文件,而不刷新页面,因为该JSON对象'obj'的内容正在动态变化。我知道这有点像黑客,但我无法以其他方式锻炼如何读取本地json文件。

2 个答案:

答案 0 :(得分:-1)

首先,您必须更改JSON文件以包含JSON对象。 如果你想看到运行

JSON.stringify(yourObject);

创建ajax(如果使用jquery,这是一种方法)

function foo() {
  $.get("samples/sample.JSON", function(data) {
        // do something with data
        console.log(data);
  });
}

//every 10 sec the function call.
setInterval(foo, 10000);

您将从文件中接收数据并根据需要使用它。

答案 1 :(得分:-3)

我会采取不同的方法,但它的工作量更大。

使用Nginx(或您喜欢的Web服务器)为samples.json文件创建本地服务器。然后,您可以使用AJAX在&#34; http://localhost/samples/sample.json&#34;。

中获取它

这样您就不必支持任何安全设置,它可以与任何浏览器配合使用。