Почему этот JavaScript зависает в IE6? - PullRequest
0 голосов
/ 29 ноября 2010

Когда вы нажимаете «Добавить в корзину» на этой странице, IE6 каждый раз замораживается.Как я могу понять, почему это замерзает?У кого-нибудь есть более прямой ответ?

totallytrollbeads {dot} com {slash} Safety0.html

function update() {
    $.ajax({
        dataType: 'json',
        type: 'POST',
        url: '/cgi-bin/ajax_cart_count.cgi',
        timeout: 2000,
        success: function (data) {
            // If bag is empty, it's see through.
            if (data.cart_count == 0) {
                $(".shopping_bag").css("opacity", ".2");
            }
            // If bag is not empty, it's not see through.
            else {
                $(".shopping_bag").css("opacity", "1");
            }
            $("#bag_total").html(data.grand_total);
            $("#bag_count").html(data.cart_count);
            window.setTimeout(update, 15000);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            $("#bag_total").html('Timeout contacting server..');
            window.setTimeout(update, 60000);
        }
    })
}
$(document).ready(update);

// preparethe form when the DOM is ready 
$(document).ready(function () {
    // bind form using ajaxForm 
    $('.add_to_cart_form').ajaxForm({
        beforeSubmit: loading,
        success: myBox
    });
});
// preparethe form when the DOM is ready
$(document).ready(function () {
    // bind form using ajaxForm
    $('.add_to_cart_form').ajaxForm({
        beforeSubmit: loading,
        success: myBox
    });
});
// $(".add_to_cart_form").click(function () {
// $('.bypass_add_to_cart_form').ajaxForm({ success: myBox });
// });

function loading() {
    $("#loadingContent").show();
}
function myBox(resptext, statustext) {
    $("#loadingContent").hide();
    Boxy.ask(resptext, ["View Bag", "Continue Shopping"], function (val) {
        if (val == "View Bag") {
            document.location.href = "/cgi-bin/store.cgi?action=view_cart";
        }
        if (val == "Continue Shopping" && product_detail == 1) {
            history.go(-1);
        }
    }, {
        title: "Add to Bag"
    });
    $('.bypass_add_to_cart_form').ajaxForm({
        beforeSubmit: loading,
        success: myBox
    });
    update();
    return false;
}
/*     
 This tells the ajax-style add to cart that      
 it's on a product detail page so if the      
 user clicks "Continue Shopping" it takes      
 them back on step in their history.     
 */
$('.search_view').click(function () {
    product_detail = 0;
});
$('.product_view').click(function () {
    product_detail = 1;
});

1 Ответ

1 голос
/ 21 декабря 2010

Нелегко отладить вещь, которая сразу же зависает снаружи. Но это всегда хорошая идея, чтобы очистить все, удалить ненужные вещи, проверить функциональность и затем сделать следующий шаг.

Например, это:

// preparethe form when the DOM is ready 
$(document).ready(function () {
    // bind form using ajaxForm 
    $('.add_to_cart_form').ajaxForm({
        beforeSubmit: loading,
        success: myBox
    });
});
// preparethe form when the DOM is ready
$(document).ready(function () {
    // bind form using ajaxForm
    $('.add_to_cart_form').ajaxForm({
        beforeSubmit: loading,
        success: myBox
    });
});

Нетрудно увидеть, что эта часть там дважды.
Добавьте немного большей точности в ваше приложение вместо копирования и вставки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...