Подтвердить что ты не робот

Есть ли способ получить доступ к кешу или сеансу из статического метода?

Как получить доступ к кешу из jQuery ajax?

Я использую jquery для проверки данных и быстрого доступа к данным. У меня есть статический веб-метод, который jquery вызывает через json для возврата значения. Я не хочу каждый раз звонить в базу данных, поэтому я хотел бы кэшировать данные, которые я нажимаю, но я не могу определить, как вызвать кеш asp.net из javascript или статический метод.

Я бы хотел отправить объект страницы до статического метода, который позволит мне получить доступ к page.cache, но не знаю, как это сделать. Запрет, возможно, способ получить доступ к кешу из самого javascript?

4b9b3361

Ответ 1

System.Web.HttpContext.Current.Cache

Кэш используется для каждого домена приложения - не на странице. Страница просто обладает удобством свойства Page.Cache, чтобы получить текущий кэш, что означает, что вы можете просто сделать Cache [ "key" ] из метода на странице.

Как вы заметили, если вы используете статический метод, то у вас нет экземпляра страницы, и у вас нет свойства Page.Cache. Итак, вам нужно использовать HttpContext.Cache. Но подождите - у вас нет экземпляра HttpContext! Это нормально, текущий исполняемый экземпляр хранится в статическом свойстве HttpContext.Current.

Итак - чтобы ответить на ваш вопрос - в статическом методе используйте HttpContext.Current.Cache. BTW, вы также можете получить доступ к Request и Response оттуда.

Ответ 3

Javascript - клиентская сторона, кэш находится на стороне сервера, поэтому вам нужно выполнить обратный вызов метода в вашем приложении asp.net, который возвращает содержимое кеша.

API-интерфейс ASP.NET Cache действительно хорош, вы можете использовать Cache [ "Key" ], чтобы получить кешированный контент, который вам нравится. Подробнее здесь: http://msdn.microsoft.com/en-us/library/ms972379.aspx