Замена элемента базы данных вызовами jquery ajax - PullRequest
1 голос
/ 01 апреля 2009

У нас очень медленная страница ASP.NET с повторителем. Это медленно, потому что большая часть обработки выполняется в событии ItemDataBound повторителя. Вся эта обработка просто получает 2 итога, которые будут показаны в каждой строке.

Чтобы увеличить пропускную способность, неплохо было бы загрузить ретранслятор без события ItemDataBound и без 2 итогов. Вместо этого при загрузке страницы в браузере вызовы AJAX могут выполняться из каждой строки, а итоговые значения могут отображаться асинхронно.

Можете ли вы указать на любой пример кода, где достигается такое решение.

Спасибо!

1 Ответ

0 голосов
/ 24 марта 2011

Действительно, вызов jQuery.ajax () является хорошим вариантом здесь. Вы можете использовать его для вызова WebMethod , определенного в вашем коде позади

Что касается расчета на стороне сервера, у вас есть пара вариантов:

  1. Внедрите значения, необходимые для предварительного вычисления, в HiddenFields в каждой строке и передайте их вашему веб-методу через параметры в вызове ajax ().

  2. Передайте уникальный идентификатор для строки, используя метод, аналогичный описанному выше (HiddenField), и выполните вычисления на основе этого идентификатора.

Что касается кода, он может выглядеть примерно так:

$('span.show-total').hover(
    function(){

        // Show panel here

        $.ajax({
            type: "POST",
            url: "PageName.aspx/MethodName",
            data: '{"uniqueId":"' + $(this).find('input[id$=YourHiddenFieldID]').val() + '"}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                // Do something interesting here.
                alert(msg.d);
            }
        });
    },
    function(){
       // Hide panel here
    }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...