Ruby плагин для веб-браузера? - PullRequest
6 голосов
/ 03 сентября 2010

Верно ли, что если кто-то написал плагин Ruby для веб-браузера и пользователь установил этот плагин, то можно было бы заменить javascript на ruby ​​на внешнем интерфейсе?

Нет ли плагинов дляэтот?Или даже для использования других языков, кроме javascript на стороне браузера?

Ответы [ 5 ]

5 голосов
/ 03 сентября 2010

Вы можете использовать http://ironruby.net/ в плагине Silverlight, но я не имею понятия о том, как легко взаимодействовать с DOM.

Но я BEG YOU don 'не делай этого!Пожалуйста, используйте Open Web Stack для решения ваших проблем.
Если вы не покинете мир комфорта Ruby, вы не только навредите своим пользователям "WTF? Зачем мне Silverlight для этой страницы?" но вы также застрянете в своем маленьком маленьком мире Ruby, не узнав ничего нового и захватывающего.

Было бы лучше для вас обоих, если бы вы просто пошли дальше и изучали JavaScript.

Потому что помните: «Учиться - это хорошо!»

2 голосов
/ 11 января 2011

Одна вещь является ФАКТОМ: с 2010 года в JavaScript нет потока, останавливающего функцию «сна» (кроме той, которая просто записывает циклы процессора).

Я работал с JavaScript по крайней мереза год до публикации этого комментария, и я пришел к выводу, что отсутствие функции сна, останавливающей поток, является настоящей задержкой показа для связанного с потоками кода.

Следствием отсутствия функции сна является невозможность симуляции Ruby / C # / C ++ / и т. Д.как модель потоков в JavaScript, что, в свою очередь, означает, что невозможно перевести любой из языков с поддержкой потоков в JavaScript, независимо от того, что он делает, если JavaScript не дополнен сном (предпочтительно без циклического горения)функция.

Если кто-то путешествует, то можно найти много комментариев, которые утверждают, что функция сна даже не нужна, что setTimeout достаточно и т. Д., Но я думаю, что люди, которые утверждают, что не пыталисьреализовать многопоточную инфраструктуру в JavaScript.(Вспомните мьютексы, критические секции. Я отказываюсь вступать в дискуссию о том, что критические секции / синхронизация не нужны / не нужны в случаях, когда содержимое виджета состоит из нескольких компонентов данных, которые образуют «атомное целое».)

Вторым ограничителем шоу для всей DOM-модели является реализация, которая отображает элементы DOM в фоновой нити.

Вот что происходит:

В Javascript: create_my_awsome_widget_in_DOM ();править() и рендеринг DOM.Если поток рендеринга «достаточно быстр» для рендеринга DOM до того, как поток JavasSript вызовет edit_my_awsome_widget_by_editing_DOM_inside_it (), все работает нормально, но если все наоборот, тогда JavaScript начинает изменять область DOM, которая этого не делает (пока) существовать.

По сути это означает, что из-за фонового рендеринга DOM функции create_my_awsome_widget_in_DOM () и edit_my_awsome_widget_by_editing_DOM_inside_it () выполняются в случайном порядке, и, очевидно, приложение вылетает, если edit_my_awsome_wid_id______________id____id___id_____1017 *

1 голос
/ 24 января 2013

mruby кажется интересным вариантом для запуска ruby ​​в веб-браузере: http://qiezi.me/projects/mruby-web-irb/mruby.html

Это не типичный плагин, так как не требует установки, это javascript (скомпилирован из C) работает код рубина.

1 голос
/ 03 сентября 2010

Там может быть способ сделать это косвенно. Вот оригинальная презентация на RubyConf 2008. Тема:

В этом докладе рассказывается о многих путях запуска рубина в вашем веб-браузере. Сначала я расскажу о том, почему это даже хорошая идея. Затем я кратко расскажу о каждом подходе, который я исследовал, и о разном количестве неудач, с которыми я столкнулся. Далее я остановлюсь на наиболее многообещающем сопернике, rubyjs, компиляторе ruby, который выводит JavaScript

Проект rubyjs все еще существует , но он кажется мертвым. Идея, вероятно, была слишком сумасшедшей.

0 голосов
/ 03 сентября 2010

Технически это будет правильно, если предположить, что браузер / плагин также предоставляет обширный API для работы с DOM и тому подобным. Мне не известны какие-либо плагины, которые делают это возможным, но это интересная идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...