2010-04-27 14 views
5

Mam następującą sytuację. Klient używa JavaScript z jQuery do stworzenia złożonej strony internetowej. Chcielibyśmy wykorzystać JavaScript i jQuery na serwerze (IIS) z następujących powodów:Wykonywanie javascript na serwerze IIS

  1. przekazywania umiejętności - chcielibyśmy używać JavaScript i jQuery na serwerze i nie trzeba używać np VB Script./classic asp. .Net framework/Java itp. Jest wykluczony z tego powodu.

  2. Ulepszone opcje wyszukiwania/dostępności. Chcielibyśmy móc używać jQuery jako systemu szablonowego, ale nie jest to możliwe dla wyszukiwarek i użytkowników z wyłączonym js - chyba, że ​​możemy selektywnie uruchomić ten kod na serwerze.

Istnieje znaczna inwestycja w IIS i Windows Server, więc zmiana nie jest opcją.

Wiem, że można uruchomić skrypt jScript na IIS przy użyciu hosta skryptów systemu Windows, ale nie jestem pewien co do skalowalności i otaczającego tego procesu. Nie jestem również pewien, czy miałby dostęp do DOM.

Oto schemat, który mam nadzieję wyjaśnia sytuację. Zastanawiałem się, czy ktoś zrobił coś podobnego?

EDYCJA: Nie szukam krytyka w architekturze internetowej, po prostu chcę wiedzieć, czy są jakieś opcje manipulowania DOM strony przed jej wysłaniem do klienta, używając javascript. Jaxer jest jednym z takich produktów (bez IIS) Dzięki.

+0

Powiązane pytanie: http://stackoverflow.com/questions/1991822/is-there-a-server-side-javascript-engine-for-iis – Residuum

+0

@Residuum - dzięki - widziałem to pytanie, ale tak naprawdę nie robi odpowiedz, w jaki sposób JScript może manipulować DOM, zanim znaczniki zostaną przesłane do przeglądarki. Sposób, w jaki to rozumiem, JScript może być używany tylko do generowania znaczników w tym scenariuszu. –

+0

Może mógłbyś wyjaśnić, DLACZEGO chcesz uruchomić jQuery na serwerze. jQuery służy przede wszystkim do tego, aby aplikacje przeglądarki były bardziej dynamiczne i responsywne, a mniej zależne od modelu strony/żądania. Jakie jest źródło chęci korzystania z tego rodzaju biblioteki na serwerze? DOM HTML nie jest dostępny na serwerze, ale * jeśli był *, nie byłoby widocznych efektów dynamicznych. Po prostu otrzymasz zmodyfikowany DOM. Dlaczego nie produkować treści po stronie serwera zgodnie z oczekiwaniami, zamiast mieć nadzieję na ich wytworzenie, a następnie zmodyfikować za pomocą jQuery? – Cheeso

Odpowiedz

5

Spójrz na bringing the browser to the server, Rhino i Use Microsoft's IIS as a Java servlet engine.

Pierwszy link pochodzi z bloga Johna Resiga (jQuery's creator).

Aktualizacja August 2 2011

Node.js is coming to Windows.

+0

+1 pierwszy link jest interesujący lektura – oedo

+0

Dziękuję bardzo, dokładnie tego właśnie szukałem. Chociaż może nie być świetny z punktu widzenia wydajności, jest to początek. Zdecydowanie uważam, że istnieje możliwość implementacji strony .NET javascript opartej na DLR w połączeniu z pomysłami John Resigs. Mogę rozpocząć projekt na git/codeplex. –

+0

słodki. Informuj nas na bieżąco. Jestem zdecydowanie zainteresowany. –

0

myślę, że to głównie skrypt przeglądarka oparta więc pewnie jesteś lepszy z użyciem technologii opartych na VB lub .NET do wykonywania lub generowania HTML z szablonów. Jestem pewien, że tak jest, ponieważ w świecie java jest ich kilka (jak prędkość). Następnie można użyć jQuery do stworzenia lub dodania funkcjonalności strony po stronie klienta, dzięki czemu strona będzie bardziej użyteczna niż byłaby.

+0

Dzięki za odpowiedź. Próbuję sprawdzić, czy możliwe jest użycie modelu programowania klienta, do którego przyzwyczajeni są deweloperzy centrów programistycznych css i photoshop - do środowiska serwerowego opartego na IIS. –

1

JScript działa na IIS przez coś, co nazywa się ASP.
Aktywne strony serwera.
Po raz pierwszy dostępny w 1996 roku.

W końcu ASP.NET został wprowadzony jako następca. Ale ASP jest nadal obsługiwana.

Nie ma jednak DOM dla strony HTML.

Być może będziesz musiał ponownie przemyśleć swoją architekturę.

+0

Dzięki. Rozumiem asp, asp.net et al. Chcę zastosować ten sam model programowania javascript na serwerze, tak jak to robię na kliencie. Jest to więc przypadek, w którym próbuje się dopasować technologię do idealnej architektury. –

+1

Powód, dla którego wskazałem, że JScript działa w ASP, jest z powodu twojej instrukcji, * Wiem, że możesz uruchomić skrypt jScript na IIS przy użyciu hosta Windows Script, ale ... *. Oświadczenie to nie wspomniało o podstawowej technologii, która byłaby używana do uruchamiania JScript na IIS. – Cheeso

0

Co dokładnie masz na myśli przez

„Klient wykorzystuje JavaScript z jQuery stworzyć kompleksowy internetowej”

połowie punktem jQuery jest, aby to łatwe dla programisty do manipulować DOM, a zatem dodać interaktywne ulepszenia do strony internetowej. Uruchomienie Javascript na serwerze i tylko renderowanie HTML spowoduje utratę możliwości dodawania tych ulepszeń, bez robienia podróży w obie strony na serwer (pomyśl o odświeżeniu formularza WebForms ... ugh).

Teraz, jeśli naprawdę masz na myśli to, że klient korzysta z narzędzia do tworzenia witryn opartego na jQuery, to dlaczego to narzędzie nie powinno wyświetlać płaskiego HTML?

+0

Dzięki. Rozumiem dobrze zastosowania jQuery. Jest to strona dużego producenta, a nie aplikacja biznesowa Intranet/Extranet, więc logika opiera się bardziej na szablonach i animacjach. –

+0

Jeszcze raz dziękuję za odpowiedź. Czy uważasz, że jest to płaski html z tonami jQuery. I to jest powielane z transformacjami xsl i xml na serwerze dla wersji

2

Pomysł ponownego użycia JS klienta na serwerze może wydawać się kuszący, ale nie jestem pewien, czy jQuery sam byłby gotowy do działania w środowisku serwera.

Musisz jakoś zdefiniować globalny kontekst dla jQuery poprzez zainicjowanie window, document, self, location, etc.. Nie jestem pewien, czy jest to wykonalne.

Poza tym, jak wspomniał Cheeso, Active Server Pages to bardzo przestarzała technologia, na początku stulecia została ona zastąpiona przez ASP.Net przez Microsoft. Kiedyś utrzymywałem starszy system przy użyciu ASP 3.0 przez ponad rok i to był ból. Najwspanialszą rozrywką było debugowanie: będzie trudno znaleźć coś dla potrzeb dzisiaj i będzie musiał decript piękne błędy jak w dzienniku IIS:

error „800a9c68”
Zastosowanie zdefiniowane lub przedmiot zdefiniowane błąd

Mimo to mogę potwierdzić, że udało mi się ponownie użyć klienta i serwera JScript. Ale to był napisany przeze mnie kod, który wiedział, że zostanie użyty na serwerze.

P.S. Nie polecałbym tego ruchu. Istnieje wiele szablonów szablonowych, które są znane tym, którzy piszą HTML i JavaScript.

+0

Dzięki. Jestem bardzo zaznajomiony z tymi technologiami. Widzę wyraźną korzyść z możliwości wykonania jQuery w DOM, zanim zostanie ona wysłana do przeglądarki. –

1

myślę jedyną realną rozwiązań ty jesteś prawdopodobne, aby znaleźć gdzieś w pobliżu gotowa do zaangażowania oddanie IIS przed Java. Istnieją dwa środowiska browser-jak jestem świadomy kodowane Java:

1) ENV-js (patrz http://groups.google.com/group/envjs i http://github.com/thatcher/env-js) wierzę ten ma wkłady jQuery Johna Resig i został wprowadzony wraz z testowaniem jQuery/wsparcie na uwadze.

2) HTMLUnit (patrz http://htmlunit.sourceforge.net/) Ten jest starszy i nie był pierwotnie stworzony wokół jQuery, ale istnieją raporty na temat używania go do pomyślnego uruchomienia zestawu testowego jQuery (http://daniel.gredler.net/2007/08/08/htmlunit-taming-jquery/).

Jeśli chcesz czegoś czystego - IIS/MS, myślę, że twoja obserwacja na temat hosta WindowsScript i/lub czegoś takiego jak na wpół porzucony JScript.NET jest prawdopodobnie tak blisko, jak to się stanie, wraz z portem (które prawdopodobnie będziesz musiał uruchomić) czegoś podobnego do Env-js lub HTMLUnit.

Także, ja nie wiem, czy widzieliście listę Wikipedii z rozwiązań po stronie serwera javascript:

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

Wreszcie ...prawdopodobnie można napisać użyteczną bibliotekę jQuery w dowolnym języku, który ma już pewną bibliotekę DOM i funkcje pierwszej klasy (lub, jeśli nie, obiekt eval). Zobacz na przykład pQuery dla Perla (http://metacpan.org/pod/pQuery). Dzięki temu uzyskasz korzyści z manipulowania dokumentami w stylu jQuery. Transfer umiejętności jest świetny, a JavaScript ma cudowne połączenie bardzo fajnych funkcji, ale z drugiej strony, wspaniale jest mieć programistów, którzy dbają o to, aby nauczyć się wielu języków, a js nie jest jedynym dobrym językiem.

+0

Jeszcze jedna rzecz, o której zapomniałem dodać: jeśli nie znajdziesz odpowiedzi, z której jesteś zadowolony, możesz wypróbować wspólną Grupę JS Google (http://groups.google. com/group/commonjs /). Myślę, że prawdopodobnie usłyszysz głównie to, co ci powiedziałem, ale jeśli przeszukujesz grupę dla IIS, jest przynajmniej jedna dyskusja, w której ludzie krótko wspomnieli, że rozważają hosta skryptu Windows i IIS. –

+0

+1 Wielkie dzięki za odpowiedź. –

0

Spójrz na to technology. Możesz wywoływać skrypty uruchamiane na serwerze, na kliencie lub w obu. Dodatkowo, to naprawdę implementuje silnik firefox na serwerze. Spójrz na to.

Aptana's Jaxer jest jak dotąd pierwszym serwerem internetowym AJAX. Jeszcze tego nie próbowałem, ale zrobię to. Wygląda obiecująco i bardzo potężnie.

Powiązane problemy