Выполните JavaScript на сервере IIS

У меня есть следующая ситуация. Клиент использует JavaScript с jQuery для создания сложного веб-сайта. Мы хотели бы использовать JavaScript и jQuery на сервере (IIS) по следующим причинам:

  1. Передача навыков - мы хотели бы использовать JavaScript и jQuery на сервере и не иметь для использования, например, Сценарий VB. / классический asp. платформа/Java .NET и т.д. исключена из-за этого.

  2. Улучшенные опции для поиска/доступности. Мы хотели бы смочь использовать jQuery в качестве системы шаблонной обработки, но это не жизнеспособно для поисковых систем и пользователей с выключенным js - если мы не можем выборочно выполнить этот код сервера.

Существуют значительные инвестиции в IIS и Windows Server, таким образом изменяя, который не является опцией.

Я знаю, что Вы можете выполнить jScript на IIS с помощью хоста окон Script, но не уверены в масштабируемости и процессе, окружающем это. Я также не уверен, имело ли это доступ к DOM.

Вот схема, которая, надо надеяться, объясняет ситуацию. Я задавался вопросом, сделал ли кто-либо что-либо подобное?

Править: Я не ищу критика на веб-архитектуре, я просто желаю знать, существуют ли какие-либо опции для управления DOM страницы, прежде чем это будет отправлено клиенту, с помощью JavaScript. Jaxer является одним таким продуктом (никакой IIS) Спасибо.

7
задан kay 25 May 2012 в 20:39
поделиться

6 ответов

Взгляните на перенос браузера на сервер , Rhino и Использование Microsoft IIS в качестве механизма сервлетов Java .

Первая ссылка взята из блога Джона Ресига (создателя jQuery).

Обновление от 2 августа 2011 г.

Node.js скоро появится в Windows.

6
ответ дан 7 December 2019 в 01:18
поделиться

Идея повторного использования клиентского JS на сервере может показаться заманчивой, но я не уверен, что сам jQuery будет готов к работе в серверной среде.

Вам нужно будет каким-то образом определить глобальный контекст для jQuery, инициализировав окно, документ, себя, местоположение и т. Д. . Я не уверен, что это выполнимо.

Кроме того, как упоминал Cheeso, Active Server Pages - очень устаревшая технология, в начале века Microsoft заменила ее на ASP.Net. Раньше я поддерживал устаревшую систему с использованием ASP 3.0 более года, и это было мучительно. Самым замечательным времяпрепровождением была отладка: сегодня вы вряд ли найдете что-либо для этой цели, и вам придется расшифровывать красивые ошибки, например, в журнале IIS:

error '800a9c68'
Определено приложением или определено объектом error

Тем не менее, я могу подтвердить, что мне удалось повторно использовать клиентский и серверный JScript. Но это был код, написанный мной, который знал, что он будет использоваться на сервере.

P.S. Я бы не рекомендовал так двигаться. Существует множество фреймворков для создания шаблонов, знакомых тем, кто пишет HTML и JavaScript.

2
ответ дан 7 December 2019 в 01:18
поделиться

JScript работает в IIS через нечто, называемое ASP.
Активные серверные страницы.
Впервые он был доступен в 1996 году.

В конце концов, ASP.NET был представлен как преемник. Но ASP по-прежнему поддерживается.

Однако для HTML-страницы нет модели DOM.

Возможно, вам придется немного пересмотреть свою архитектуру.

1
ответ дан 7 December 2019 в 01:18
поделиться

Я думаю, что это в основном сценарий на основе браузера, поэтому, вероятно, вам лучше использовать технологии, основанные на VB или .NET, для выполнения или генерации HTML из шаблонов. Я уверен, что они есть, потому что в мире Java их несколько (например, скорость). Затем вы должны использовать jQuery для создания или добавления функций и удобства использования на стороне клиента, чтобы сделать веб-сайт более удобным для использования, чем он был бы.

0
ответ дан 7 December 2019 в 01:18
поделиться

Что именно вы имеете в виду под

«Клиент использует JavaScript с jQuery для создания сложного веб-сайта»

Половина смысла jQuery состоит в том, чтобы облегчить разработчику управление DOM , и, следовательно, добавить интерактивные улучшения на веб-сайт. Запустив Javascript на сервере и визуализируя только HTML, вы потеряете возможность добавлять эти улучшения, не совершая обратного обращения к серверу (подумайте о модели обратной передачи WebForms ... тьфу).

Теперь, если вы действительно имеете в виду, что клиент использует конструктор сайтов на основе jQuery, почему бы в первую очередь не использовать этот инструмент для вывода плоского HTML?

0
ответ дан 7 December 2019 в 01:18
поделиться

Я думаю, что единственные жизнеспособные решения, которые вы, вероятно, найдете где-то почти готовыми к работе, включают размещение IIS перед Java. Есть две среды, подобные браузеру, которые, как мне известно, закодированы для Java:

1) Env-js (см. http://groups.google.com/group/envjs и http : //github.com/thatcher/env-js ) Я считаю, что в этом есть вклад Джона Ресига из jQuery, и он был составлен с учетом тестирования / поддержки jQuery.

2) HTMLUnit (см. http://htmlunit.sourceforge.net/ ) Этот более старый и изначально не создавался на основе jQuery, но есть отчеты об использовании его для запуска Набор тестов jQuery успешно ( http://daniel.gredler.net/2007/08/08/htmlunit-taming-jquery/ ).

Если вам нужно что-то чисто-IIS / MS, я думаю, что ваше наблюдение о хосте windowsScript и / или о чем-то вроде полузаброшенного JScript.NET, вероятно, примерно так близко, как вы собираетесь, вместе с портом ( который вам, вероятно, придется начать) чего-то вроде Env-js или HTMLUnit.

Кроме того, я не знаю, видели ли вы список серверных JavaScript-решений в Википедии:

http://en.wikipedia.org/wiki/Server-side_JavaScript

Наконец ...вы, вероятно, могли бы написать работоспособную библиотеку, подобную jQuery, на любом языке, который уже имеет какую-либо библиотеку DOM и функции первого класса (или, если это не удается, средство eval ). См., Например, pQuery для Perl ( http://metacpan.org/pod/pQuery ). Это даст вам преимущества стиля jQuery для работы с документами. Передача навыков - это здорово, и в JavaScript есть прекрасное сочетание очень хороших функций, но, с другой стороны, хорошо иметь разработчиков, которые достаточно заботятся об изучении нескольких языков, и js - не единственный хороший язык.

1
ответ дан 7 December 2019 в 01:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: