Кэшируя стратегию, Выходной кэш по сравнению с Кэшем Данных или обоими?

$mgDialog имеет изолированную область видимости, которая отличается от той, что указана в вашей директиве, вы можете попытаться отследить исходную область видимости и использовать ее в $mgDialog controller

 $scope.save = function(){
    var outerScope = $scope;
    $mdDialog.show({
      templateUrl: '',
      escapeToClose: true,
      clickOutsideToClose: true,
      controller: function($scope) {
        $scope.teste = function(){
          outerScope.callback();
        }
      }
    })
  }

или передать обратный вызов в качестве параметра

$scope.save = function(){
    $mdDialog.show({
      templateUrl: '',
      escapeToClose: true,
      clickOutsideToClose: true,
      locals: {
        callback: $scope.callback
      },
      controller: function($scope, callback) {
        $scope.teste = function(){
          callback();
        }
      }
    })
  }
8
задан Portman 12 July 2009 в 14:12
поделиться

2 ответа

Будьте осторожны относительно сверхагрессивного кэширования. Хотя кэширование является инструментом для помощи производительности при неправильном использовании это может на самом деле сделать производительность хуже.

Я не могу ответить или кэширование вывода, или кэширование данных работало бы на Вас лучше, не зная больше деталей о Вашем проекте. Я могу помочь обеспечить пару примеров того, когда использовать один по другому.

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

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

Таким образом в конце, это действительно зависит от Ваших потребностей и быть осторожным относительно использования кэширования неправильно.

7
ответ дан 5 December 2019 в 11:27
поделиться

Мы делаем API и Кэширование вывода в крупном масштабе (3 миллиона посещений в день) веб-сайт (портал новостей). Сайт, прежде всего, используется анонимными пользователями, но у нас действительно есть аутентифицируемые пользователи, и мы кэшируем полный сайт только для них, из-за некоторых персонализированных частей сайта, и я должен признать, что у нас не было абсолютно никаких проблем с давлением памяти.

Так, мой совет был бы кэшем все, что Вы можете в кэше API, таким образом, Ваше восстановление Выходного кэша еще быстрее.

Конечно, обратите пристальное внимание на свои значения отношения кэша в счетчиках производительности. Необходимо видеть числа> 95% кэшируемых хитов.

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

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

8
ответ дан 5 December 2019 в 11:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: