所以我得到了一个名为'data.js'的本地文件,其中包含各种数据。
var json={
'city': 'madrid',
'zip':'21212',
'street':'bergstrasse',
'house':'15',
};
for(key in json)
{
if(json.hasOwnProperty(key))
$('input[name='+key+']').val(json[key]);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<form action="options.php" method="post" >
<input type="text" name="city" placeholder="stadt" >
<br>
<input type="text" name="zip" placeholder="zip" >
<br>
<input type="text" name="street" placeholder="straße" >
<br>
<input type="text" name="house" placeholder="hausnummer" >
<br>
<input type="submit" value="speichern" name="saves"></input>
</form>
<script src="data.js"></script>
我想只在js文件中的某些数据发生变化时才刷新页面。如果您能用一些代码解释我,请感谢您的帮助。我在网上搜索,我找不到合适的答案。
答案 0 :(得分:0)
让我们打破这个局面。你想要:
正如评论中所提到的,有很多方法可以在Javascript中完成上述所有操作。
首先让我们定期检查某些内容:您可以使用递归setTimeout
循环,也可以使用setInterval
:
function waitOneSecond = function() {
setTimeout(function() {
check(); // will get to this in a second
waitOneSecond();
}, 1000); // 1000 = one second
});
function checkEverySecond() {
setInterval(function() {
check();
}, 1000); // 1000 = one second
接下来,我们需要一种方法来检查文件是否发生了变化。实际的&#34;它改变了部分&#34;取决于你(你可能想考虑使用像Underscore或Lodash的_.isEqual
这样的函数),但要做到这一点,你需要获得最新版本的JSON文件。幸运的是,jQuery有一种方法可以做到这一点:getJSON
:
function check() {
$.getJson('http://yourserver.com/data.js').done(function(json) {
if (didChange(json)) {// use _.isEqual to write your didChange
takeAction();
}
});
}
正如您所看到的,最后一个示例也涵盖了采取行动,但我再次将takeAction
函数的定义留给您。