Как сохранить историю браузера в синхронизации при использовании Ajax?

Вот эффективный 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;
    }

`

9
задан balupton 18 September 2010 в 09:57
поделиться

6 ответов

4
ответ дан 4 December 2019 в 09:15
поделиться

Много веб-сайтов используют скрытый iframe, чтобы сделать это, просто обновить iframe с новым URL, который добавляет его к истории просмотра. Затем все, что необходимо сделать, обработать, как приложение реагирует на те события 'кнопки "Назад"' - необходимо будет или обнаружить состояние/местоположение iframe или обновить страницу с помощью того URL.

3
ответ дан 4 December 2019 в 09:15
поделиться

3,5 обновления SP1 имеют поддержку истории браузера и кнопки "Назад" в ASP.NET ajax теперь.

0
ответ дан 4 December 2019 в 09:15
поделиться

Информация: Навигация Ajax является характерной особенностью предстоящего IE8.

0
ответ дан 4 December 2019 в 09:15
поделиться

Для всех решений о кнопке "Назад" ни один из них не является "автоматическим". С каждым Вы оказываетесь перед необходимостью делать некоторую работу для сохранения состояния страницы. Так не, нет способа "обмануть" браузер, но существуют некоторые большие библиотеки там, которые помогают Вам с кнопкой "Назад".

0
ответ дан 4 December 2019 в 09:15
поделиться

Обновление: теперь существует API истории HTML5 (pushState, popState), который не поддерживает функциональность HTML4 hashchange. History.js обеспечивает кросс-браузерную совместимость и необязательный хэш-код для браузеров HTML4.

Ответ на этот вопрос будет более или менее таким же, как мои ответы на следующие вопросы:

Подводя итог, вам определенно стоит ознакомиться с этими двумя проектами, в которых объясняется весь процесс изменения хэша и добавление к нему ajax:

  • История jQuery (использование хэшей для управления состоянием ваших страниц и привязки к изменениям обновить свою страницу).

  • jQuery Ajaxy (расширение ajax для истории jQuery, позволяющее создавать полные веб-сайты ajax, будучи совершенно ненавязчивым и изящно деградируемым).

15
ответ дан 4 December 2019 в 09:15
поделиться
Другие вопросы по тегам:

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