我正在检查Safari中的错误控制台,同时调试另一个问题(该问题现已修复),我注意到它显示消息“RangeError Maximum Call Stack Size Exceeded” . 通过评论代码,我能够找出导致问题的原因 . 然而,从搜索周围,我还没有发现任何其他人有Jquery $ .get()导致问题 . 我对ajax并不熟悉,但从查看代码我看不到任何可能导致此问题的递归 . 此外,如果我在成功函数中注释掉代码,我仍然会收到错误 . 但是,如果我注释掉$ .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");
    }
}