Вот эффективный Shuffler, который возвращает массив байтов перетасованных значений. Он никогда не перемешивает больше, чем нужно. Он может быть перезапущен с того места, где он ранее был остановлен. Моя фактическая реализация (не показана) является компонентом MEF, который позволяет пользователю задавать замененный shuffler.
public byte[] Shuffle(byte[] array, int start, int count)
{
int n = array.Length - start;
byte[] shuffled = new byte[count];
for(int i = 0; i < count; i++, start++)
{
int k = UniformRandomGenerator.Next(n--) + start;
shuffled[i] = array[k];
array[k] = array[start];
array[start] = shuffled[i];
}
return shuffled;
}
`
MSDN имеет статью о Руководящей Истории Браузера в Ajax ASP.NET
Много веб-сайтов используют скрытый iframe, чтобы сделать это, просто обновить iframe с новым URL, который добавляет его к истории просмотра. Затем все, что необходимо сделать, обработать, как приложение реагирует на те события 'кнопки "Назад"' - необходимо будет или обнаружить состояние/местоположение iframe или обновить страницу с помощью того URL.
3,5 обновления SP1 имеют поддержку истории браузера и кнопки "Назад" в ASP.NET ajax теперь.
Информация: Навигация Ajax является характерной особенностью предстоящего IE8.
Для всех решений о кнопке "Назад" ни один из них не является "автоматическим". С каждым Вы оказываетесь перед необходимостью делать некоторую работу для сохранения состояния страницы. Так не, нет способа "обмануть" браузер, но существуют некоторые большие библиотеки там, которые помогают Вам с кнопкой "Назад".
Обновление: теперь существует API истории HTML5 (pushState, popState), который не поддерживает функциональность HTML4 hashchange
. History.js обеспечивает кросс-браузерную совместимость и необязательный хэш-код
для браузеров HTML4.
Ответ на этот вопрос будет более или менее таким же, как мои ответы на следующие вопросы:
Подводя итог, вам определенно стоит ознакомиться с этими двумя проектами, в которых объясняется весь процесс изменения хэша и добавление к нему ajax:
История jQuery (использование хэшей для управления состоянием ваших страниц и привязки к изменениям обновить свою страницу).
jQuery Ajaxy (расширение ajax для истории jQuery, позволяющее создавать полные веб-сайты ajax, будучи совершенно ненавязчивым и изящно деградируемым).