Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript Ping服务器,被动地从服务器而不是从DOM_Javascript - Fatal编程技术网

使用Javascript Ping服务器,被动地从服务器而不是从DOM

使用Javascript Ping服务器,被动地从服务器而不是从DOM,javascript,Javascript,我想从我的服务器运行一个脚本来ping其他站点 我偶然碰到一把小提琴,它演奏得很好: 唯一的问题是对于我的功能,我不需要DOM来加载页面或任何东西来ping。我想从服务器被动地运行它 我不能准确地将它加载到屏幕的标题中并称之为onLoad。只有当有人加载页面时,服务器才会被ping。我希望他们能够ping服务器,不管是否有人正在加载页面 我怎样才能做到这一点?我需要使用Node JS吗 这里是函数(如果你不想点击小提琴) 谢谢在更新数据库的服务器上运行一个cron作业,然后提供一个显示数据库结果

我想从我的服务器运行一个脚本来ping其他站点

我偶然碰到一把小提琴,它演奏得很好:

唯一的问题是对于我的功能,我不需要DOM来加载页面或任何东西来ping。我想从服务器被动地运行它

我不能准确地将它加载到屏幕的标题中并称之为onLoad。只有当有人加载页面时,服务器才会被ping。我希望他们能够ping服务器,不管是否有人正在加载页面

我怎样才能做到这一点?我需要使用Node JS吗

这里是函数(如果你不想点击小提琴)


谢谢

在更新数据库的服务器上运行一个
cron
作业,然后提供一个显示数据库结果的网页。这个网站没有数据库,有没有办法在没有数据库交互的情况下执行此操作?当然-将结果写入数据库以外的内容。老派:我不确定我是否清楚。我真的不在乎结果。我只想ping站点xy和Z,这样他们就不会睡着了。我有一个脚本可以实现这一点,但只有当我加载页面P时,我才希望它一直从服务器运行,而不是从页面加载。写入文件将如何改变这一点?
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('responded');

        };
        this.img.onerror = function (e) {
            if (_that.inUse) {
                _that.inUse = false;
                _that.callback('responded', 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(status);
        });
    });
};
var komodel = new PingModel(['localhost',
    'ws-bdimperio8',
    'ws-bdimperio8.payformance.net',
    'ws-bdimperio8.payformance.com',
    'ws-bdimperio8.payspan.com',
    'ws-bdimperio8/favicon.ico',
    '127.0.0.1', 
    'unknown'
    ]);
ko.applyBindings(komodel);