Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Rhino и динамическая загрузка JavaScript 
V
    Опции темы
Fame_biz
Дата 10.9.2009, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 1.2.2007

Репутация: нет
Всего: нет



Добрый день всем.


Есть вопрос следующего рода :

Существует 10 файлов {name}.js в которых написаны кокетство функции и они лежат все в одной директории

Нужно из под Java c помощью  Rhino их загрузить для дальнейшего использования. Толь вот здесь возникла проблема следующего рода:

для примера есть файлы:

name1.js
Код

    function A () {
          B();
          C();
    }


name2.js
Код

    function B () {
           C();
    }


name3.js
Код

    function C () {
          alert("test");
    }


из этого следует что файлы нужно загружать в порядке :
name3.js
name2.js
name1.js


Вопрос как можно сделать так в проекте Rhino чтобы указав один файл оно знало какие файлы или функции нужны для загрузки.

Если загрузить name1.js и вызвать A (); то получим 

JavaScript runtime exception: ReferenceError: "B();" is not defined.


 
PM MAIL   Вверх
LSD
Дата 10.9.2009, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(Fame_biz @  10.9.2009,  11:56 Найти цитируемый пост)
Вопрос как можно сделать так в проекте Rhino чтобы указав один файл оно знало какие файлы или функции нужны для загрузки.

Сам подумай, как в принципе такое можно реализовать? Откуда Rhino должен знать: что это за функция такая B() - то ли это просто опечатка, то ли забыли загрузить нужный исходник, то ли еще что.

Просто предварительно загружай все файлы и все:
Код

public class Test
{
  public static final String A_JS = "    function A () {\n" +
                                    "          B();\n" +
                                    "          C();\n" +
                                    "    }";
  public static final String B_JS = "    function B () {\n" +
                                    "           C();\n" +
                                    "    }";
  public static final String C_JS = "    function C () {\n" +
                                    "          java.lang.System.out.println(\"test\");\n" +
                                    "    }";
  
  public static void main(String[] args) throws Exception
  {
    ScriptEngine rhino = new ScriptEngineManager().getEngineByName("JavaScript");
    rhino.eval(A_JS);
    rhino.eval(B_JS);
    rhino.eval(C_JS);
    rhino.eval("A()");
  }
}



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Fame_biz
Дата 10.9.2009, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 1.2.2007

Репутация: нет
Всего: нет



нашол другой способ

Код

load("name3.js");
load("name2.js");
function A () {
          B();
          C();
    }


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.