我搜索了这个概念,但并不真正理解它是如何工作的。我的后端正在使用webapp2和GAE,我想刷新一个从我的数据库中提取的页面。
页面上还有其他内容,我只需要专门刷新表格内容。我目前正在使用
<meta http-equiv="refresh" content="10">
每隔10秒刷新整个页面,但我需要的东西只刷新部分页面。任何JS或JQuery添加的解释都会很棒!
我真正不理解的部分是我必须在后端更改以允许这种更新。
答案 0 :(得分:2)
一个简单的HTML占位符:
<div id="tablehere"></div>
每10秒AJAX轮询的Jquery代码:
setInterval(function(){
$.ajax({ url: "http://yourapp.appspot.com/thetable",
success: function(data) {
maketable(data);
}
});
}, 10000);
JS制作并展示一个新表格(这里有一百万个替代品,我没有JS专家,这只是一种方式):
maketable = function(data) {
var tabdiv = document.getElementById("tablehere");
var tabhead = '<table><thead><tr><th>Col1</th><th>Col2</th></tr></thead><tbody>';
for(var i=0,len=data.length; i<len; i++) {
tabhead += '<tr><td>' + data[i].col1 + '</td><td>' + data[i].col2 + '</td></tr>';
}
tabhead += '</tbody></table>';
tabdiv.innerHTML = tabhead ;
}
那就是客户端。
服务器端,app.yaml
将有一个处理程序
url: /thetable
script: thetable.app
在所有需要的导入之后并在thetable.py
中:
class Tablerow(ndb.Model):
col1: ndb.StringProperty()
col2: ndb.StringProperty()
class Tablehandler(webapp2.RequestHandler):
def get(self):
data = [tr.to_dict() for tr in Tablerow.query().iter()]
response.write(json.dumps(data))
app = webapp2.WSGIApplication([('/thetable', Tablehandler)])
Phew - 非常骷髅但仍然花了我很长时间才写作。但正如你所看到的那样,应用程序引擎部分非常简单 - 它是HTML,Javascript和Jquery方面,它占据了大部分的努力! - )