В процессе разработки программ AJAX многие люди допускают некоторые распространенные ошибки. Некоторые ошибки могут поставить под угрозу функции и производительность программы AJAX, в результате чего будут потеряны все преимущества программы AJAX. Здесь автор познакомит вас с семью смертными грехами, на которые нужно обратить внимание при разработке программ AJAX.
AJAX — хорошая вещь, он позволяет разработчикам быстрее и эффективнее создавать более динамичные приложения. Но у него есть и свои недостатки.
На первый взгляд может показаться, что немного здравого смысла предотвратит эти ловушки, и в некоторой степени это так и есть. Но по сравнению с его конкурентом DHTML архитектура программы AJAX совершенно иная. Независимо от того, сколько здравого смысла вы имеете в своих усилиях по разработке приложений, вам следует учиться на уроках тех, кто был до вас. В этой статье мы называем эти ошибки «Семью смертными грехами», но они не отражают все ошибки.
Прежде чем мы узнаем о семи фатальных ошибках в разработке AJAX, давайте рассмотрим семь менее серьезных ошибок. Все совершают эти ошибки. Выполните поиск в Google, и вы увидите, насколько распространены эти ошибки.
семь проступков
1. Злоупотребление кнопкой «Назад». Многие люди совершают эту ошибку, и кнопка «Назад» стала обязательной во многих веб-программах. Многие начинающие разработчики AJAX добавляют кнопку «Назад» в свои программы AJAX по разным причинам, но обнаруживают, что кнопка «Назад» влияет на функциональность программы. Это происходит главным образом потому, что Javascript не очень удобный язык программирования. Во-вторых, разработчикам приходится заново изучать идеи разработки AJAX.
Тем, кто плохо знаком с AJAX, нелегко принять идею о том, что кнопка «Назад» не является хорошим решением. Когда мы находимся в точке обновления страницы или когда нам нужно использовать функцию «Отменить», мы можем рассмотреть «клавишу возврата». Но вы должны дважды подумать, прежде чем кодировать, иначе легко возникнут повторные обновления.
2. Не информирование пользователя о результатах операции. Часть работы AJAX заключается в том, что он не использует обычный загрузчик веб-интерфейса пользователя. Поэтому вам необходимо разработать несколько визуальных подсказок, чтобы пользователи понимали, что происходит.
3. Пропущенные ссылки. Это также стандартная ошибка AJAX: пропуск URL-ссылки, которую внешние пользователи могут вырезать и вставлять. Мы все скопировали URL-адрес и отправили его кому-то другому. Когда мы используем AJAX, мы можем предоставлять ссылки другим только вручную. Почему? Поскольку в приложениях AJAX сервер не предоставляет эту страницу, автоматически созданную в Javascript. Не упускайте из виду эту наиболее распространенную функцию веб-приложений, которая может заинтересовать ваших пользователей. Пожалуйста, найдите время и предоставьте пользователю URL-адрес, поскольку сервер его не предоставляет.
4. Используйте управление контентом вместо управления страницами. Если вы ищете динамический контроль контента, то прорыв приложения AJAX в традиционном методе взаимодействия клиент-сервер может стать для вас отличным подарком. Однако у этого подхода есть и свои недостатки: хотя у вас есть большой контроль над переписыванием контента в определенном месте на странице для настройки взаимодействия с пользователем, в итоге вы можете получить неполную страницу.
Во многих случаях мы концентрируемся на обработке определенной части страницы и забываем, что сервер не будет обновлять страницу. Это может привести к загромождению страниц и ухудшению пользовательского опыта: когда они просматривают страницу, они могут видеть устаревшую страницу. Пожалуйста, следите за всей страницей; убедитесь, что все страницы с динамическим контентом обновляются.
5. Усталые пауки. Преимущество AJAX заключается в большом объеме текста, который можно добавить на страницу без переустановки; недостаток AJAX также заключается в большом объеме текста, который можно добавить на страницу без переустановки. Если приложение спроектировано так, чтобы быть дружественным к поисковым системам, вы должны представить, что может произойти. Независимо от того, что происходит на странице, обязательно поместите много сплошного текста вверху и дайте паукам развлечься.
6. Искаженные символы. AJAX не поддерживает несколько наборов символов. Это не ограничение жизни и смерти, но забвение этого может привести к реальным проблемам. Самый простой набор символов — UTF-8. Независимо от того, какую кодировку отправляет ваш Javascript, не забудьте правильно ее закодировать и установить кодировку на стороне сервера в зависимости от содержимого.
7. Для пользователей, не поддерживающих Javascript, подсказки не предусмотрены — некоторые браузеры не поддерживают Javascript, и такие пользователи не могут понять, что происходит. Пожалуйста, дайте им несколько советов.
Выше приведены некоторые ошибки, которые легко найти. Реальные проблемы легко упустить из виду.
семь смертных грехов
1. Разрешить переполнение памяти. Любой, кто долгое время занимается разработкой, знает, что такое циклические ссылки, и понимает, какой вред они приносят управлению памятью. Javascript, используемый AJAX, — это язык управления памятью. Другими словами, Javascript имеет встроенную функцию сбора пакетов, поэтому он может извлекать переменные, которые больше не используются ссылочными путями, и перераспределять память, используемую этими переменными.
Любой, кто долгое время занимается разработкой, знает, что такое циклические ссылки, и понимает, какую опасность они несут в управлении памятью. Javascript, используемый AJAX, — это язык управления памятью. Другими словами, Javascript имеет встроенную функцию сбора пакетов, поэтому он может извлекать переменные, которые больше не используются ссылочными путями, и перераспределять память, используемую этими переменными.
Теперь возникает проблема: в файловой объектной модели на любой узел DOM в дереве файлов могут ссылаться другие элементы, присутствующие в дереве, независимо от того, ссылаются ли на него другие объекты! Следовательно, любой объект, помеченный в сборщике пакетов как на который ссылается узел DOM, должен быть нулевым в этом направлении, иначе его память останется выделенной.
2. Не понимаю, что означает «асинхронный». Слово «асинхронный» может легко заставить пользователей, незнакомых с ним, нервничать. Но если веб-приложение, которое вы разрабатываете для этих пользователей, является настольным, они не расстроятся. Это важнейший момент проектирования. Большинство веб-приложений функционируют очень похоже на свои настольные аналоги. Но в веб-приложениях пользователи ожидают, что это иллюзорное качество приведет к тому, что они станут совершенно другими.
У пользователей совсем другие предубеждения и ожидания при работе с веб-браузерами, чем при работе с настольными приложениями. Таким образом, хотя частые ответы между страницей и сервером были бы приятными и эффективными, но одновременное обновление страницы вызвало бы у пользователя головокружение. Поэтому нужно соблюдать два правила и учитывать каждое изменение, попадающее в поле зрения пользователя: Если обновление не является срочным для пользователя, то делать обновление щадящим и не переносить. Если обновление не является срочным для пользователя, взаимодействие приложения очень важно, поэтому обновления должны быть понятными и очевидными.
3. Сделать сервер слепым — снижение связи между клиентом и сервером — большая проблема, чего раньше не было. Раньше серверное приложение все знало и могло видеть все: каждое исключение, каждую перезагрузку, каждое событие можно было увидеть и записать в журнал, и, конечно же, сервер также знал, что происходит на клиенте, потому что сервер Что отображается на экране будет записано.
В приложениях AJAX это не так. Когда происходят события, эти события не зависят от сервера. То есть, когда возникает проблема на клиенте, сервер не узнает об этом сразу. Обнаруживайте и регистрируйте события и исключения на стороне клиента в месте, позволяющем серверу отслеживать проблемы, требующие вмешательства.
4. Используйте GET для ленивости — функция GET — получение данных; функция POST — настройка GET; Не используйте GET ненадлежащим образом и даже не пробуйте его, если считаете, что он безвреден. Действия GET меняют состояние, а ссылки, которые меняют состояние, могут сбить с толку пользователей. Большинство считает, что ссылки предназначены для навигации, а не для функциональности;
5. Никакого мониторинга типов данных — Javascript не является частью .NET framework. Хотя это немного грустно, но это иллюстрирует проблему, с которой мы можем столкнуться: убедиться, что Javascript понимает типы данных на платформе, на которой он работает, и наоборот для .NET или другой. Преобразований может быть несколько, и вам придется выполнять их одно за другим. Например, библиотека Ajax.NET Pro предоставляет преобразователи, преобразующие нотации объектов .NET и Javascript.
6. Некоторые программы невозможно закрыть - динамическая генерация контента без обновления страницы была бы очень плохой, если бы не было времени закрытия. Сколько веб-страниц вы видели? Сколько веб-страниц длиннее, чем Hansard of Congress? Если веб-страница будет расширяться до бесконечности, это, несомненно, станет кошмаром для пользователей. Просто подумайте, что пользователи подумают о приложениях, которые никогда не останавливаются. Сделайте свое веб-приложение динамичным, но в пределах возможного.
7. Сделайте Javascript и DOM независимыми друг от друга — помните, что AJAX основан на структуре «Модель-Представление-Контроллер» (Model-View-Controller), отнеситесь к этому серьезно. Javascript принадлежит уровню модели, DOM — визуальному уровню, а контроллер — консультантом по браку, который их соединяет. Убедитесь, что ваши веб-файлы не зависят от Javascript (чтобы они были более полезны для пользователей, которые не поддерживают Javascript), если только сам контент не имеет смысла только для пользователей, использующих Javascript. В этом случае используйте Javascript для создания контента.