Это выглядит следующим образом:
серверы стоят дорого, но пользователи будут давать вам время обработки в своих браузерах бесплатно. Следовательно, серверный код относительно дорог по сравнению с клиентским кодом на любом сайте, достаточно большом, чтобы запускать более одного сервера. Однако есть некоторые вещи, которые вы не можете оставить клиенту, такие как проверка и извлечение данных. Вы хотите сделать это на клиенте, потому что это означает более быстрое время отклика для пользователей и меньше серверной инфраструктуры для вас самих, но для обеспечения безопасности и доступности требуется серверный код.
Что обычно происходит, вы делаете оба. Вы пишете логику на стороне сервера, потому что вам нужно, но вы также пишете одну и ту же логику в javascript в надежде на более быстрое реагирование на пользователя и сохранение некоторых серверов в некоторых ситуациях. Это особенно эффективно для кода проверки.
Поскольку мы все (в основном) программисты здесь, мы должны немедленно определить новую проблему. Существует не только дополнительная работа по разработке двух наборов одной и той же логики, но и работа, связанная с ее поддержанием, неизбежные ошибки, возникающие в результате работы платформ, не очень хорошо сочетаются, а ошибки, возникающие по мере того, как реализации дрейфовали со временем.
Войдите на серверный javascript. Идея заключается в том, что вы можете писать код один раз, поэтому один и тот же код работает как на сервере, так и на клиенте. Это, по-видимому, решит большую часть проблемы: вы получаете полный набор логики сервера и клиента, сделанной сразу, нет дрейфа и нет двойного обслуживания. Это также приятно, когда вашим разработчикам нужно знать только один язык для работы сервера и клиента.
К сожалению, в реальном мире это не так хорошо. Проблема в четыре раза:
- Вид на сервер страницы по-прежнему сильно отличается от вида клиента на странице. Сервер должен иметь возможность делать такие вещи, как прямо разговаривать с базой данных, которая просто не должна выполняться в браузере. Браузеру нужно делать такие вещи, как манипулировать DOM, который не соответствует серверу.
- Вы не контролируете механизм JavaScript для клиента, то есть все еще будут важные языковые различия между вашим кодом сервера и кодом клиента.
- База данных, как правило, является более узким местом, чем веб-сервер, поэтому сбережения минимальны.
- Хотя почти каждый знает немного javascript, не многие разработчики действительно знают и понимают javascript хорошо.
Это не совсем неприступные технические проблемы: вы ограничить сервера при поддержке языка в подмножество JavaScript, который хорошо поддерживается в большинстве браузеров, обеспечить IDE, который знает это подмножество и серверных расширений, внесите некоторые правила о структуре страницы, чтобы свести к минимуму проблемы DOM и предоставить некоторый javascript котельной для включения на клиенте, чтобы сделать платформу немного приятнее в использовании. В результате чего-то вроде Aptana Studio/Jaxer, или совсем недавно Node.js, который может быть довольно приятным.
Но не идеально. По моему мнению, слишком много проблем и проблем с совместимостью, чтобы сделать это действительно сияющим. В конечном счете, дополнительные серверы по-прежнему дешевы по сравнению с временем разработки, и большинство программистов могут быть гораздо более продуктивными с использованием чего-то другого, кроме javascript.
Что бы я хотел увидеть, это частичный серверный JavaScript-код. Когда запрашивается страница или отправлена форма серверной платформы запрос проверка в javascript, возможно, как плагин для веб-сервера, который полностью независим от остальной части, но ответ построен на платформе по вашему выбору ,
Ничего себе! Какая скорость ввода? –
Нет способа, которым вы только что написали, что ...: p –
:) Время _last_ кто-то задал вопрос вроде этого, он был закрыт, прежде чем я смог нажать submit. У меня было достаточно работы на посту, я решил ее сохранить. –