質問

私はこの例に係るCometServletを作成したのhttp://tomcat.apache .ORG / tomcatに-7.0-docの/ aio.html に。それから私はjQueryのを使用して、それからデータを取得しようとしました。コードは、次のされます:

$(function() {

        $.longPoll = function(url, success, error) {
        $.ajax({
            url : url,
            success: function(data, status) {
                $.longPoll(url, success, error);
                if (success) {
                    success(data, status);
                }
            },
            error: function(data, status) {
                $.longPoll(url, success, error);
                if (error) {
                    error(data, status);
                }
            }
        });

    };

    $.longPoll("./comet", "", function(data, status) {
        alert("success:" + data);
    }, function(data, status) {
        alert("error:" + data);
    });
});

問題は、成功関数は(私はデータが来ることをFirebugのコンソールで見ることができるにもかかわらず)誘発しないということです。私は、サーバーが近い応答ライターをしないので、それが起こると思うが、それはロングポーリングの目標です:)

いずれかは、それが解決することができますどのように任意のアイデアを持っていますか?

役に立ちましたか?

解決 2

問題の解決策は、新しいデータのための長いポール・ストリームをチェックするためのタイマーを追加することです。偉大な説明はここにある:のhttp:/ /www.bennadel.com/blog/1976-Long-Polling-Experiment-With-jQuery-And-ColdFusion.htmする

みんなありがとうます。

他のヒント

あなたは、jQueryのxhr onreadystatechangereadyState === 3をチェックするために.ajax()を上書きする必要があります。例:

var xhr = $.ajax({});
xhr._onreadystatechange = xhr.onreadystatechange;  // save original handler

xhr.onreadystatechange = function() {
     xhr._onreadystatechange();         // execute original handler
     if (xhr.readyState === 3) alert('Interactive');
};
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top