Вы можете сделать это с помощью javascript, преобразовать список в JSON и подать его через тег сценария из кэша сервера. Я говорю JSON, потому что что-то вроде jQuery или любого другого фреймворка javascript может легко его использовать.
например. в html / aspx:
<script src="CustomerList.aspx?Refresh=12308798798023745" type="text/javascript"></script>
Обновлением является DateTime.Now.Ticks в последний раз, когда оно изменялось на сервере . Поэтому, пока вы размещаете этот тег на каждой странице, клиент получит его только один раз и снова, когда он действительно изменится на сервере.
Что-то вроде серверной стороны:
public class Cache {
public static List<Customer> Customers { get; set; }
public static DateTime LastRefresh { get; set; }
public static void RefreshCustomers {
//Populate Customers, Customers = blah;
LastRefresh = DateTime.Now;
}
}
На странице:
ScriptTagwithRunAtServer.Src = "CustomerList.aspx?Refresh=" + Cache.LastRefresh.Ticks;
Любой способ визуализации этого тега будет хорошим, просто пример. Страница CustomerList.aspx
просто отобразит Cache.Customers в форме json ... и ваша страница будет работать с небольшим javascript, чтобы использовать его как угодно.
Просто идея, пожалуйста, прокомментируйте, если она вас интересует, а я что-то упускаю.