我需要在网站上显示当前存储的数据,只有在数据发生变化时才自动刷新。
我目前的做法失败了:
我做了什么:
setInterval(function() {refreshData()}, 5000);
function refreshData() {
@{
var db2 = Database.Open("StarterSite");
string tresc2 = db.QuerySingle(someQuery, 3).Tresc;
<text>
alert(@tresc2);
</text>
}
}
这里的问题是这段代码似乎工作正常,我没有收到任何错误消息,但@tresc2
不存在。看起来db2
也不存在。
我不明白这里发生了什么。
如果我可以提出两个问题:
谢谢
答案 0 :(得分:1)
服务器端的代码被执行,当它呈现时,它变为
setInterval(function() {refreshData()}, 5000);
function refreshData() {
alert(somevalue);
}
你得到的是你不断调用同样的功能来警告同一个消息。
更正确的方法是ajax-调用服务器并更新页面:
<div id="divToRefresh" />
<script type="text/ecmascript">
$(function() {
setInterval(function() {refreshData()}, 5000);
function refreshData() {
$.ajax( {
url : 'controller/action',
async : false,
success: function(data) {
$("#divToRefresh").html(data);
}
}
});
</script>
这假设控制器/操作controller/action
返回包含页面刷新片段的部分html。