Прочитав комментарии к посту Крэйга Батлера, "Станет ли когда-нибудь server-side Javascript модным среди разработчиков", лишний раз убеждаешься, что люди воспринимают JavaScript исключительно однотипно. Большинство девелоперов рассматривает его сугубо в контексте браузера. Во многом потому, что существует определённая путаница между самим языком и DOM’ом браузера. DOM интерфейс — это, собственно, и есть то место, где JavaScript девелоперы проводят большую часть своего рабочего времени.
Там же можно найти подтверждение ещё одному факту — многие люди терпеть не могут JavaScript. Хотя я всё равно уверен, что те люди, которые ценят лучшие качества JavaScript и закрывают при этом глаза на его недостатки, вряд ли удивлены тому, что JavaScript собирается потихоньку перебираться на выполнение сервером. Скорее всего они еще и рады этому. И, поверьте, это только начало!
Итак, где же серверный JavaScript можно найти сейчас?
Jaxer – это фреймворк и сервер для разработки веб приложений на JavaScript. Серверный API не страдает от недостатка предоставляемых возможностей, включая доступ к файлам, базам данных и сетевым сокетам. Граница между применением серверных и пользовательских скриптов достаточно размыта, к примеру, с помощью тех же серверных скриптов можно манипулировать DOM’ом веб-странички. Такие скрипты придают вашему HTML коду толику ASP-стиля.В данном случае у атрибута Runat может быть три значения – server, both , и server-proxy. Если назначить значение server, скрипт выполняется ещё до отправки страницы браузеру. Иначе его обработка происходит уже на клиентской стороне. Если установлено значение server-proxy, функция может быть вызвана из client-side скриптов по имени, но будет проксироваться с помощью Ajax на свой server-side эквивалент. Helma - это еще один фреймворк для написания JavaScript скриптов, выполняемых на стороне сервера. Helma имеет шаблонную систему, которая помогает избежать смешивания server-side и client-side кода. Здесь, вместо того, чтобы прописывать действия JavaScript, которые затем рендерят темплейт, вы вводите данные в сам процесс рендеринга. Каждый HTTP запрос, таким образом, инициирует выполнение сконфигурированного действия. Вот пример шаблона, или, если использовать Helma-жаргон, "скина", названный 'hello':<p id="msg"></p> <script runat="server"> var nme = document.createTextNode("Hello my name is Jaxer."); var para = document.getElementById("name"); para.appendChild(nme); </script>
А вот action, которые рендерит его:<p>Hello, my name is </p>
Судя по теме в Википедии, есть немало других примеров “серверного” JavaScript . Почти во всех из них используется Rhino или SpiderMonkey для выполнения скриптов.res.data.name = 'Helma'; this.renderSkin('hello');
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.