使用jquery时,电子浏览器窗口不会更新

时间:2016-05-22 19:23:27

标签: javascript jquery ajax electron atom-editor

我一直在考虑将网络应用转换为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));
}

0 个答案:

没有答案