0

複数の Web サーバーをチェックしてオンラインかどうかを確認する Web サイト用の関数を作成したいと考えています... jQuery.ajax() を使用しています。JSONP を使用する必要があることに気付きましたが、よくわかりません。どうやってするか!IP アドレスの配列があり、対応するサーバーが利用可能かどうかを確認したいと考えています。

これまでの私のコードは次のとおりです。

function urlExists(url){

            $.ajax({
                timeout: 5000,
                type: 'GET',
                dataType: 'jsonp',
                url: "http://" + url,
                cache: false,
                "error":function(XMLHttpRequest,textStatus, errorThrown) {
                    if(errorThrown == "timeout") {
                        alert("woah, there we got a timeout...");
                        // At this point the request shall abort
                    }
                },
                statusCode: {
                    404:function(){
                        alert("404!");

                    },
                    0:function(){
                        alert("0!");

                    },
                    500:function(){
                        alert("500!");

                    },
                    200:function(){
                        alert("it worked!");

                    }
                }
            });
        }

        urlExists("192.168.5.55");

その後、Webサーバーがオンラインかどうかを保存したいのですが、どこですか?

4

3 に答える 3

2

ajax complete イベントを使用して、すべてのリンクがテストされているかどうかを確認できます

function urlExists(url){
    $.ajax({
        timeout: 5000,
        type: 'GET',
        dataType: 'jsonp',
        url: "http://" + url,
        cache: false,
        "error":function(XMLHttpRequest,textStatus, errorThrown) {
            if(errorThrown == "timeout") {
                result.push({
                'url': url,
                'status': "woah, there we got a timeout..."
            });
           // At this point the request shall abort
        }
    },
    complete: function(){
     // Handle the complete event
     if(result.length == list.length) {
            alert("All url's checked. Check the console for 'result' varialble");
        console.log(result);
        }
    },
    statusCode: {
        404:function(){
            result.push({
                'url': url,
                'status': "404!"
           });

        },
        0:function(){
            result.push({
                    'url': url,
                    'status': "0!"
                });
            },
            500:function(){
                result.push({
                    'url': url,
                    'status': "500"
               });
            },
            200:function(){
                result.push({
                    'url': url,
                    'status': "it worked!"
               });
            }
        }
    });
}
var result = new Array;
var list = ['192.168.5.55','192.168.98.99'];
for (var i = list.length - 1; i >= 0; i--) {
    urlExists(list[i]);
};
于 2013-10-14T14:15:59.133 に答える
0

これを行う唯一の方法は、次のようなハックなソリューションを使用することです: Javascript からサーバーに ping を実行することは可能ですか?

結果を保存したいので、PHP や ASP などのサーバー側言語を使用していると仮定します。私は PHP に精通しているので、PHP で PING コマンドを実行し、その結果に基づいてサーバーがオンラインかどうかを判断することをお勧めします。

編集

最初のコメントに関しては、PING の代わりにhttprequestを実装することをお勧めします。

于 2013-10-14T13:50:23.363 に答える
0

url: "http://" + url,(url はコントローラーとメソッド) を持つ php 関数を呼び出す必要があり、ここで検証ステータスを作成し、データベースに挿入します。

于 2013-10-14T13:42:00.943 に答える