Я очень заинтересован в разработке приложений на основе Ajax. Это загрузка почти всего содержимого приложения через XMLHttpRequest, а не только некоторые комбинации и виджеты. Но если я попытаюсь сделать это с нуля, вскоре я найду некоторые проблемы без простого решения. Интересно, есть ли какая-то инфраструктура (как на стороне клиента, так и на стороне сервера) для решения этих проблем. Насколько я знаю, нет (но я искал в основном в мире Java). Поэтому я серьезно думаю о создании своей собственной платформы, по крайней мере, для моих проектов.
Поэтому в этом вопросе я задаю несколько вещей. Во-первых, возможные проблемы разработки на основе AJAX. Затем я ищу какие-то рамки или утилиты, чтобы иметь дело с ними. Наконец, если нет доступной платформы, какие функции она должна иметь.
Вот вопросы, о которых я подумал:
1 - JavaScript должен быть включен. Паранойя безопасности - не единственная проблема: многие мобильные устройства тоже не могут использовать приложение.
2 - Иногда вам нужно обновить более одного DIV (например, основной контент, меню и панировочные сухари).
3 - Неизвестный тип ответа: когда вы делаете Ajax-вызов, вы также устанавливаете функцию обратного вызова, обычно указывая, является ли ожидаемый ответ объектом javascript или в который DIV поместил результат. Но это происходит сбой, когда вы получаете ответ другого типа: например, когда сеанс истек, и пользователь должен снова войти в систему.
4 - Кнопки «Обновить», «Назад» и «Вперед» в браузере могут быть настоящей болью. Пользователь будет ожидать различного поведения в зависимости от ситуации.
5 - Когда поисковые системы индексируют сайт, переходите только по ссылкам. Таким образом, загрузка контента Ajax не будет «существовать» для тех, кто еще не знает об этом.
6 - пользователи могут попросить открыть ссылку в другом окне / вкладке.
7 - в адресной строке не отображается «настоящая» страница, на которой вы находитесь. Таким образом, вы не можете скопировать местоположение и отправить его другу или добавить страницу в закладки.
8 - Если вы хотите монетизировать сайт, вы можете разместить несколько рекламных объявлений. Поскольку вы не обновляете всю страницу и через некоторое время хотите изменить объявление, вам нужно обновить только тот DIV, в котором оно находится. Но это может привести к нарушению положений и условий вашего рекламного сервиса. Фактически, это может идти вразрез с AdSense TOS.
9 - Когда вы обновляете всю страницу, весь JavaScript «очищается». Но в вызовах Ajax все объекты JavaScript останутся.
10 - Вы не можете легко изменить свои свойства CSS.