Лучшая реализация для канала RSS в C# (ASP.net)

Модуль работает, чтобы получить младшие биты (только), хотя я думаю, что value & 0x1ffff выражает «взять младшие 17 бит» более непосредственно, чем value % 131072, и поэтому легче понять, как это сделать.

Старшие 17 битов 32-битного значения без знака были бы value & 0xffff8000 (если вы хотите, чтобы они все еще находились на своих позициях вверху), или value >> 15, если вы хотите, чтобы старшие 17 битов значения были в нижнем. 17 бит результата.

7
задан Kelsey 1 September 2011 в 16:22
поделиться

2 ответа

Раньше, когда я реализовал RSS, я кэшировал данные RSS в HttpContext.Current.Cache.

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

Вот пример того, как использовать кеш:

// To save to the cache
HttpContext.Current.Cache.Insert("YourCachedName", pObjectToCache, null, DateTime.UtcNow.AddMinutes(1), System.Web.Caching.Cache.NoSlidingExpiration);
// To fetch from the cache
YourRssObject pObject = HttpContext.Current.Cache[("YourCachedName"] as YourRssObject : null;

Вы также можете установить следующее в вашем ashx:

context.Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));

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

Вы также можете сделать его кешем на основе параметра запроса, который также может получать ваш RSS, установив :

context.Response.Cache.VaryByParams["YourQueryParamName"] = true;
8
ответ дан 7 December 2019 в 03:20
поделиться

ASP.Net имеет довольно хорошее встроенное кэширование на стороне сервера. Предполагая, что вы используете эти классы как часть обычной страницы aspx или обработчика http (ashx), вы можете просто сообщить ASP.Net для активного кэширования, а не для повторного построения фида при каждом запросе.

1
ответ дан 7 December 2019 в 03:20
поделиться
Другие вопросы по тегам:

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