我一直在考虑将网络应用转换为Electron桌面应用。我在main.js中启动一个http服务器来处理来自我的应用程序的ajax请求。我已经创建了一个按钮并定义了它的onclick函数来调用ajax函数,然后在响应到达时更新另一个元素,例如$( '#消息')。文本( '不管')。这一切都有效,但元素('#message')没有完全刷新 - 我在旧文本的顶部看到了新文本。如果我单击窗口中的某个位置,则元素会正确刷新。我尝试在元素上调用blur()并将焦点设置为另一个元素,但这些都没有帮助。
为什么BrowserWindow在我通过jQuery更新时不会删除元素的旧文本,我该如何解决?
提前感谢您的帮助!
以下是单击“测试”按钮时调用的代码。
function test_webapi() {
var url = 'http://localhost:8888/time';
console.log("Sending request: " + url);
$.ajax({
cache: false,
method: 'GET',
url: url,
error: function(xhr, status, err) { console.log("Ajax error from " + url + ": " + err); },
success: function(data) {
console.log("Have response from " + url, data);
$('#message').text(data.Data.Time);
}
})
}
设置http服务器并处理ajax请求的代码。
var port = 8888;
var server = http.createServer(handle_time_request);
server.listen(port, function() {
console.log("API server listening on port " + port);
});
function handle_time_request(req, res) {
var tval = moment(new Date()).format('YYYY-MM-DD hh:mm:ss');
var reply = {
Success: true,
Message: "whatever",
Data: { Time: tval }
};
res.writeHead(200, {"Content-Type": "application/json"});
res.end(JSON.stringify(reply, null, 4));
}