Однако новая функциональность может потребовать, чтобы объект userData возвращался как отдельный HTTP-запрос, что означает, что встроенная форма будет дубликатом (и нарушением принципа DRY).Соблазнительно реорганизовать приведенный выше код для использования этого AJAX-запроса для userData, но он вводит еще один HTTP-запрос данных, который, как мы знаем, необходим (и доступен) немедленно.
Встроенная форма не обязательно дублируетИнформация.Это позволяет пользователю начать видеть объект и, в зависимости от дополнительной информации, которую вы предоставляете, может позволить вашему приложению продолжать работать, если пользователь отключил JavaScript (поскольку предполагается, что JavaScript должен только улучшать приложение, хотя я знаю,практически это вряд ли возможно с современными приложениями).Но непосредственная возможность просмотра формы (или ее частей) является преимуществом.
Таким образом, DRY не должен означать, что что-то затихает до такой степени, что приложение испытывает недостаток в производительности или быстродействии.Эти цели часто могут быть напряженными, но вы должны прийти к счастливому среднему положению.Следует признать, что иногда простота обслуживания может оправдать небольшое снижение производительности, но в большинстве случаев вы, вероятно, не хотите, чтобы ваши пользователи страдали по этой причине.
Стоит ли менять код для использованияuserData получена из вызова AJAX?
Похоже, вы говорите выше, что это потребуется, нет?Если это так, зачем вам нужно, чтобы он был принят асинхронно?Собираете ли вы данные с другого сайта и хотите как можно быстрее передать содержимое пользователю, а затем обновить его этой дополнительной информацией?В противном случае, для оптимальной производительности, вероятно, будет лучше предоставлять пользовательские данные непосредственно пользователю, а не ждать их ответа Ajax, поскольку Ajax лучше всего использовать для данных, необходимых позже в приложении, особенно с учетом ограничений IE <8 вобработка более двух одновременных подключений. </p>
Если вам нужен Ajax, возможно, вы сможете предоставить некоторую информацию о загрузке, а затем использовать дополнительные данные, возвращенные Ajax.
ЕслиИтак, какова лучшая практика для кодирования URL-адреса, из которого извлекаются данные (учитывая, что он будет лучше динамически генерироваться веб-структурой)?
Что вы подразумеваете под кодированием URL-адреса?точно?
Вы имеете в виду кодирование символов URL?В Core JavaScript это обычно делается с помощью encodeURIComponent () , хотя в jQuery это может быть обработано для вас такими методами, как serialize () и jQuery.param (), с первым для сериализации существующей формы в закодированный URL, а вторым для получения массива или объекта в кодированном URL-формате.
Если вы имеете в виду выбор между GET или POST, GET должениспользовать, если ваш поиск не имеет побочных эффектов на сервере, а POST в большинстве случаев - то, что вы должны использовать в противном случае.