0

別の問題をデバッグしているときに Safari のエラー コンソールを確認していたところ (その問題は現在修正されています)、「RangeError Maximum Call Stack Size Exceeded」というメッセージが表示されていることに気付きました。コードをコメントアウトすることで、問題の原因を特定できました。ただし、検索しても、Jquery $.get() が問題を引き起こしている人は他に見つかりませんでした。私は ajax にはあまり詳しくありませんが、コードを見てみると、この問題を引き起こす可能性のある再帰は見当たりません。さらに、success 関数のコードをコメントアウトしても、エラーが発生します。しかし、$.get 呼び出しをコメントアウトすると、エラー メッセージは消えます。アプリは正常に動作し、警告エラー メッセージは表示されませんが、これがより大きな問題になるのではないかと心配しています.

function update_database(newLat, newLng) {
    if (navigator.onLine && connectStatus) {
        $.get(GREEN_CAB_URL + "updatedatabase/", {
            lat: newLat,
            lng: newLng
        }, function(data) {
            data = data.substring(0, data.length - 1);
            data = "{\"recs\":[" + data + "]}";
            var arr = $.parseJSON(data);
            var arrr = arr.recs;
            if (clientdb) {
                clientdb.transaction(function(tx) {
                    for (var i in arrr) {
                        tx.executeSql("INSERT OR REPLACE INTO ads (ad_id, sec_filename, filename, lng, lat, radius, first_img_url, second_img_url, days, was_removed, business, phone_number, start_time_everyday, end_time_everyday, is_vid) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ", [arrr[i].id, arrr[i].second_filename, arrr[i].filename, arrr[i].lng, arrr[i].lat, arrr[i].radius, '<img src="' + GREEN_CAB_URL + arrr[i].filename + '" class="ads" />', '<img src="' + GREEN_CAB_URL + arrr[i].second_filename + '" class="secondad"/>', arrr[i].days, arrr[i].was_removed, arrr[i].business, arrr[i].phone_number, arrr[i].start_time_everyday, arrr[i].end_time_everyday, arrr[i].is_movie], insert_query_success, insert_error);
                    } // end of for(var i in arrr)
                }, function(err) {
                    alert("client.transaction error: " + err.message + "(code: " + err.code + ")")
                }, update_database_success);
            }
        }).error("updatedatabase ERROR");
    }
}
4

0 に答える 0