Использование абсолютных URL в JQM - PullRequest
1 голос
/ 19 апреля 2011

У меня есть существующий веб-проект с Java на сервере.Он использует абсолютные пути для ссылок между страницами.

В настоящее время я конвертирую проект для использования jQuery Mobile.Сначала я попытался использовать относительные URL-адреса, но изменить всю структуру URL-адресов в проекте было не так просто, особенно когда многие URL-адреса создавались на лету, и найти правильный относительный путь относительно отображаемой в данный момент страницы былонемного сложнее (в основном из-за наших собственных AJAX-вызовов, которые нацелены на конечные точки URL-адреса на сервере, отличные от самой страницы).

Так что я начал думать, можно ли изменить код JQM для работы только с абсолютными URL-адресами.В настоящее время я пытаюсь изменить использование location.hash на location.href, чтобы он переписывал весь путь в URL, а не только часть после хэша.Кто-нибудь из вас пробовал это?Возможно ли это?

Sidenote: Почему JQM имеет относительную модель URL с хешами?Это для поддержки возврата?Это не кажется мне очень вероятным, поскольку они хранят весь стек истории в поле urlHistory.Или это просто для обработки относительных ссылок внутри страниц?В этом случае не стоит ли создавать два режима URL-адреса в JQM и позволить пользователю инфраструктуры решить, какой из них использовать (вероятно, в 'mobileinit'): один, если реализация использует относительные ссылки (то есть статический HTML-код).проект, где JavaScript выполняет всю работу), а другой - для абсолютных ссылок (т. е. динамический веб-проект, в котором большая часть вычислений выполняется на сервере)?Это может также решить проблему с глупыми URL-адресами, такими как http://server.com/folder1/folder2/page.html#../../index.html ...

1 Ответ

1 голос
/ 08 января 2012

Почему JQM имеет относительную модель URL с хэшами?Поддерживает ли он возврат?

Я понимаю, почему они используют # для навигации, потому что они хотят, чтобы страница была более естественной.Наличие единственной страницы, содержащей все, и использование плавных переходов между «страницами» создает эту иллюзию вместо того, чтобы щелкать ссылку, а затем ожидать загрузки совершенно новой страницы.

Что касается попыток дооснастить веб-сайт для работы с jquery mobile, я увидел в одном блоге предложение:

    <script>
        $(document).ready(function() {
            // disable ajax nav
            $.mobile.ajaxLinksEnabled = false;
        });
    </script>  

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

...