Есть ли способ получить доступ к кешу или сеансу статическим методом? - PullRequest
18 голосов
/ 22 декабря 2008

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

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

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

Ответы [ 3 ]

34 голосов
/ 22 декабря 2008

System.Web.HttpContext.Current.Cache

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

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

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

1 голос
/ 22 декабря 2008

Я думаю, что вызов PageMethod может быть лучшим, что вы можете сделать, если вы действительно хотите это сделать:

http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/

0 голосов
/ 22 декабря 2008

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

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

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