Javascript 使用knockout.js Ping站点
我想用Javascript 使用knockout.js Ping站点,javascript,knockout.js,Javascript,Knockout.js,我想用javascriptping几个站点,找到这支笔,做我想做的事 然而,我不明白,当我把goo12121212gle.com添加到站点列表中作为测试时,它会说域已经响应了,但在控制台日志中我看到错误名称没有解决 我是JS新手,但我不确定为什么下面的脚本既说站点在那里,又不是同时在那里?脚本中缺少什么东西了吗 function ping(ip, callback) { if (!this.inUse) { this.status = 'unchecked';
javascript
ping几个站点,找到这支笔,做我想做的事
然而,我不明白,当我把goo12121212gle.com
添加到站点列表中作为测试时,它会说域已经响应了
,但在控制台日志中我看到错误名称没有解决
我是JS新手,但我不确定为什么下面的脚本既说站点在那里,又不是同时在那里?脚本中缺少什么东西了吗
function ping(ip, callback) {
if (!this.inUse) {
this.status = 'unchecked';
this.inUse = true;
this.callback = callback;
this.ip = ip;
var _that = this;
this.img = new Image();
this.img.onload = function () {
_that.inUse = false;
_that.callback('online');
};
this.img.onerror = function (e) {
if (_that.inUse) {
_that.inUse = false;
_that.callback('offline', e);
}
};
this.start = new Date().getTime();
this.img.src = "http://" + ip;
this.timer = setTimeout(function () {
if (_that.inUse) {
_that.inUse = false;
_that.callback('timeout');
}
}, 1500);
}
}
var PingModel = function (servers) {
var self = this;
var myServers = [];
ko.utils.arrayForEach(servers, function (location) {
myServers.push({
name: location,
status: ko.observable('unchecked')
});
});
self.servers = ko.observableArray(myServers);
ko.utils.arrayForEach(self.servers(), function (s) {
s.status('checking');
new ping(s.name, function (status, e) {
s.status(e ? "error" : status);
});
});
};
var komodel = new PingModel(['goo12121212gle.com','msn.com','104.46.36.174','23.97.201.12']);
ko.applyBindings(komodel);
OneError和onload回调都使用“responsed”作为消息,因此无法区分它们:
this.img.onerror = function (e) {
if (_that.inUse) {
_that.inUse = false;
_that.callback('responded', e); // <--- change this to a different message
}
};
OneError和onload回调都使用“responsed”作为消息,因此无法区分它们:
this.img.onerror = function (e) {
if (_that.inUse) {
_that.inUse = false;
_that.callback('responded', e); // <--- change this to a different message
}
};
谢谢你的回复,最后我们进行了更改,尝试了一下,但仍然无法让它工作(我已经更新了我的代码,所以你建议了什么,但仍然得到了回复)error@EmmaStone不可能,连一个“responsed”字符串都没有在新代码中。我想你忘了更新codepen版本。它应该可以像那样正常工作。谢谢你的回复,最后进行了更改以尝试它,但仍然无法正常工作(我已经更新了我的代码,所以你建议了什么,但仍然得到了回复)error@EmmaStone不可能,连一个“responsed”字符串都没有在新代码中。我想你忘了更新代码笔版本。它应该可以像那样工作。