Существует несколько путей. Мой предпочтительный путь состоит в том, чтобы присоединить функцию к ajaxStart/Stop событиям на самом элементе.
$('#loadingDiv')
.hide() // Hide it initially
.ajaxStart(function() {
$(this).show();
})
.ajaxStop(function() {
$(this).hide();
})
;
функции ajaxStart/Stop будут стрелять каждый раз, когда Вы делаете любые вызовы Ajax.
Обновление : С jQuery 1.8 документация указывает, что .ajaxStart/Stop
должен только быть присоединен document
. Это преобразовало бы вышеупомянутый отрывок к:
var $loading = $('#loadingDiv').hide();
$(document)
.ajaxStart(function () {
$loading.show();
})
.ajaxStop(function () {
$loading.hide();
});
Вы поступаете разумно, если хотите не заниматься преждевременной оптимизацией. Тем более, что такая «оптимизация» даст преимущество процессору по сравнению с вашим, что намного дороже.
Основное правило оптимизации - сначала оптимизировать медленные. Поэтому подумайте, как часто вы действительно обновляете модель, а не выбираете ее из своей базы данных. Я предполагаю, что это 1/10 или меньше. Теперь рассмотрим стоимость выбора из серверной части базы данных по сравнению со стоимостью отражения. Стоимость отражения измеряется в миллисекундах. Стоимость выбора из базы данных в худшем случае может быть измерена секундами. По моему опыту, POST-запросы редко бывают очень медленными, а когда они возникают, то обычно виновата база данных, а не отражение. Я думаю ты'
Я думаю, что UpdateModel - это своего рода ярлык, который вызывает огромную связь между представлением и моделью.
Я предпочитаю не использовать «встроенные» модели (например, возможность передавать объекты, созданные LINQ, в представление непосредственно из базы данных), потому что мне нужна возможность замены моей модели чем-то более сложным - или даже просто другой базой данных. провайдер. Однако очень заманчиво использовать LINQtoSQL (или ADO.NET Entities) для быстрого прототипирования.
Я обычно создаю свое приложение MVC, а затем открываю слой «службы», который затем подключается к «модели» ( что является OO-представлением моего домена). Таким образом, я могу легко создавать слой веб-сервисов, менять базы данных, писать новые рабочие процессы и т. Д. Без забот
(и убедитесь, что вы пишете свои тесты и используете DI - это избавляет от множества хлопот!
По сравнению с задержкой в сети, вызовами базы данных и общим вводом-выводом вызов UpdateModel () тривиален, и я бы не стал с ним возиться.