Почему я хотел бы использовать серверную сторону JavaScript?

Я смущен, я регулярно читал разговор о серверной стороне JS, почему я захочу использовать это? Кажется, что это выполнило бы путь медленнее, чем в значительной степени любой другой язык, это также испытывает недостаток во многих конвенциях, которые имеют более сложные языки.

Действительно ли возможно вручить все объекты от клиента к серверу, управлять ими и возвратить их назад?

Просто изо всех сил пытаясь понять понятие его.

7
задан JP Silvashy 15 December 2009 в 19:04
поделиться

13 ответов

  • I think you cant say anything about the speed of JavaScript without knowing where it is running. I think a V8 could beat a scripting languages like ruby or python.
  • In my opinion JavaScript is much more clearer language then for example PHP or Perl. But this is just my personal opinion.

So why not?

Interesting links: v8cgi, node.js, wxJavaScript and last but not least CouchDB (a JavaScript powered database server)

8
ответ дан 6 December 2019 в 06:50
поделиться

Да, вы можете передавать целые объекты от клиента на сервер, манипулировать ими и возвращать их обратно, используя JSON. Вы также можете совместно использовать код между клиентом и сервером.

8
ответ дан 6 December 2019 в 06:50
поделиться

why would I want to use that?

It reduces the number of languages your projects use. For a modern webapp, you need developers with some JavaScript knowledge anyway, and if you need only JavaScript expertise, you'll have a bigger labor pool to choose from than if you need JavaScript+Java or JavaScript+C#, or JavaScript+anything.

It seems like it would execute way slower than pretty much any other language,

Can you give any reason why you believe so? Surely this is entirely a matter of VM implementation and thus not something you can make definitive statements about. Besides, it's almost a truism that webapps are usually bottlenecked on DB access rather than CPU.

it also lacks many conventions that more sophisticated languages have.

Um... No? Nowadays, JavaScript (or, properly, ECMAScript) is a quite sophisticated language of its own. It has exceptions, closures, associative arrays... really, all you need.

Is it possible to hand entire objects from the client to the server, manipulate them and return them back?

Not the objects as such, since the underlying protocol is still HTTP, but using JSON is really almost the same thing.

8
ответ дан 6 December 2019 в 06:50
поделиться

If you know the language and can operate with it at really high level, why would you want to switch to some other language? At this moment there is really nice and fast server-side JS, which is called nodejs. In my opinion nodejs proves that server-side JS is not fare-tale but reality.

3
ответ дан 6 December 2019 в 06:50
поделиться

Don't forget you can get all your client-side goodness that Mootools et al give you but on the server side, make coding a sheer joy when you get that up and running. As for speed, depends what you what it to do. We have a site running 1000's of lines of code in JScript ASP per page request, 60K users per day, 1000's of pages. Its is lightening fast! So fast that the case for re-coding it in .net is just not strong enough as the current code handles it perfectly well.

Writting Javascript client side can hurt your head a bit at first, no elements to mess with just nice coding style with some really quirky feature (we pass an annoymous functions/closures into our DB code like so for instance:

var hotels = DataLayer.FindByHotelByStarRating( 4 )

hotels.each( function( hotel ) {
  %>
  <li><%= hotel.name.htmlEncode() %> is rated as <%= hotel.star_rating %> star</li>
  <%
}, this );

Now thats pretty powerful and damn fun too, and the time spent learnng Mootools or advanced JS is not wasted as we can use it both Server-side and client side.

We can use the same validation logic, the same JSON funcitons, the same Objects (if your careful) and so on. ASP with JScript is 100 times better/cleaner/simpler/nicer than VBScript and makes my job a joy rather than a VBScript head ache.

Plus most importantly, its damn fun!

1
ответ дан 6 December 2019 в 06:50
поделиться

Серверный JScript - это просто еще один язык в семействе языков .NET. С точки зрения синтаксиса и функций это в значительной степени Javascript, который мы знаем по работающему клиенту, с одним очевидным и очень существенным отличием, которое он выполняет на сервере.

Следовательно, среда - это стандартная среда .NET, которую можно ожидать от программы на любом языке .NET, и, в частности, отсутствует DOM. На серверный JScript накладываются те же ограничения, что и на любую другую серверную программу. В частности, нет способа напрямую передать объект JavaScript на стороне клиента программе на стороне сервера.

Код JScript с точки зрения производительности не уступает любому другому языку, потому что JScript на стороне сервера компилируется, а не интерпретируется. Приведение типов вызывает некоторые накладные расходы, но они минимальны.

Относительно того, почему вы хотите использовать JScript - прежде всего потому, что это язык сценариев. Если вам нужен язык, который будет использоваться пользователями вашей программы для выражения некоторых простых условий и / или вычислений, вы можете обнаружить, что предоставление им JScript в качестве способа предоставления этих выражений является привлекательным вариантом. По крайней мере, для меня это сработало очень хорошо

-2
ответ дан 6 December 2019 в 06:50
поделиться

Лучший ответ можно найти на этой странице

«Один из самых популярных методов, используемых для создания современных динамических веб-страниц, - это языки сценариев на стороне сервера. Эти динамические страницы построены таким образом, что все серверные процессы выполняются до того, как страница будет доставлена ​​пользователю. Это означает, что вам понадобится только самое простое программное обеспечение для просмотра веб-страниц, чтобы просматривать самые сложные и динамические страницы в Интернете сегодня ]. "

Это также дает мобильным браузерам те же возможности, что и полнофункциональные браузеры ПК.

-5
ответ дан 6 December 2019 в 06:50
поделиться

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

Чтобы вы могли писать все свои приложения на одном языке. Чтобы вы могли обмениваться объектами между сервером и клиентом, не выполняя сериализацию / преобразование и т. Д. Чтобы вы могли написать код один раз (например, проверка поля)

Похоже, что это будет выполняться способом медленнее, чем любой другой язык,

Неправда. Восприятие медленного JS связано с тем, что он используется на стороне клиента. Реализация движка была довольно медленной, а также были проблемы с DOM. Было показано [1], что JS может приблизиться к C по производительности. И это было в прошлом году. Произошли дальнейшие улучшения производительности. Также ознакомьтесь с [тестами веб-сервера Node.js и другими [2].

ему также не хватает многих соглашений, которые есть в более сложных языках.

Вы имеете в виду такие вещи, как [замыкания, генераторы, карта / сокращение [3], [функции более высокого порядка, динамическая типизация и объектно-ориентированная парадигма на основе прототипов, более гибкая, чем объектно-ориентированная концепция на основе классов [4]?

Можно ли передавать целые объекты от клиента к серверу, манипулировать ими и вернуть обратно?

Это [5] есть [6].

- MV

1: shaver.off.net/diary/2008/08/22/the-birth-of- а-быстрее-обезьяна / 2: four.livejournal.com/1019177.html 3: ejohn.org/blog/javascript-18-progress/ 4: www.ibm.com/developerworks/java/library/j-cb12196/index.html 5: www.jaxer.org/ 6: juicejs.org/

1
ответ дан 6 December 2019 в 06:50
поделиться

ах, но это не интерпретаторы часть клиентских браузеров, они вероятно, не будет доступных для их сервер

Проверьте www.commonjs.org

- MV

1
ответ дан 6 December 2019 в 06:50
поделиться

Хм .. вы говорите все со стороны клиента Боже, но на самом деле большая часть на стороне клиента эти библиотеки provide - это в основном манипуляции с DOM, да?

Они делают. Но вы можете использовать jquery (например) для генерации HTML на стороне сервера .

- MV

0
ответ дан 6 December 2019 в 06:50
поделиться

Javascript не медленный; DOM медленный.

1
ответ дан 6 December 2019 в 06:50
поделиться

Некоторое время я использовал nodejs и написав для него драйвер mongodb, я должен сказать, что я очень впечатлен. Прежде всего, поскольку я использую mongo, который хранит объекты JSON, у меня есть клиент для конвейера db, это все javascript.

Пока я все еще использую Ruby на работе, я перешел на Javascript для всех личных проектов, потому что я ленив и не могу переносить постоянное переключение контекста между SQL, Ruby, Javascript.

И хотя бы за что. NodeJS - фантастический способ заново изучить язык, в который мало кто из нас когда-либо вкладывал много энергии, и это может только сделать вас более сильным веб-разработчиком: D

1
ответ дан 6 December 2019 в 06:50
поделиться

Я пришел поздно. JavaScript / ECMA-Script - это базовый язык, который можно привязать к любой библиотеке. При использовании в браузере он предоставляет языку несколько объектов уровня браузера (окно, документ и т. Д.). Сценарии, которые вы встраиваете в файлы .html или связываете как файлы .js, запрограммированы на выполнение желаемых операций с этими объектами.

Та же концепция применяется на стороне сервера. Например, NodeJS предоставляет объекты HTTP-сервера и клиента, и вы можете делать то же самое, что и в PHP, сценариях CGI, фреймворках Python или Ruby или модулях Apache.

Двигатель Google V8 JavaScript с JIT очень хорошо оптимизирован. Он используется как в Chrome (браузер), так и в NodeJS (сервер).

Я использовал JavaScript в браузере для вызовов AJAX и Python / WSGI для сервера. Этот смешанный режим программирования меня раздражал. С тех пор, как я открыл для себя NodeJS, я могу выполнять как серверное, так и клиентское программирование на одном языке. Удивительно, но пропускная способность NodeJS более чем вдвое выше, чем я достиг с помощью Python. Более подробный анализ можно найти на nodejs.org. Простой вывод заключается в том, что JS при использовании V8 очень близок к скорости C / C ++.

1
ответ дан 6 December 2019 в 06:50
поделиться
Другие вопросы по тегам:

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