Asp. внешние функции, определяемые переменной.

Тема в разделе "Общие вопросы", создана пользователем latrommi, 30 авг 2006.

Статус темы:
Закрыта.
  1. latrommi

    latrommi Гость

    Добрый день, уважаемые!

    Сиим вопрошаю обратить внимание и указать направление поисков по следующему вопросу:

    [index.asp]
    Код (Text):
    <%
    s = "any_function"
    ' TODO: execute function "any_function"
    %>
    [functions.asp]
    Код (Text):
    <%
    public function any_function()
    any_function = "result"
    end function
    %>
    Задача: запустить функцию, находящуюся в файле functions.asp из файла index.asp (в строке TODO) при условии, что имя функции задается некоторой переменной.

    Есть ли такие средства в ASP?

    Да, и, в самом деле, это прототип задачи. Полная задача расширяется до передачи в эту функцию нескольких параметров и получении обратного результата :)

    Быть может есть альтернативное решение?

    Спасибо за понимание! :)
     
  2. ioni

    ioni Well-Known Member

    Регистрация:
    11 май 2006
    Сообщения:
    351
    Симпатии:
    0
    Да возможно.
    Дайте мне полчасика?
     
  3. latrommi

    latrommi Гость

    Полчасика - лишь песчинка в полости двухневных песочных часов :)
     
  4. ioni

    ioni Well-Known Member

    Регистрация:
    11 май 2006
    Сообщения:
    351
    Симпатии:
    0
    Код (Text):
    <%@LANGUAGE="VBSCRIPT"%>
    <html>
    <head>
    <title>Server.Execute Method in Action</title>
    </head>
    <body>
    <% If Request.QueryString("file")="" Then %>
    This is the main page!<br><br>
    <a href="main.asp?file=file1.asp">Execute File1.asp</a> |
    <a href="main.asp?file=file2.asp">Execute File2.asp</a>
    <% Else %>
    <a href="main.asp">Back</a>
    <% Server.Execute Request.QueryString("file") %>
    <% End If %>
    </body>
    </html>
     
  5. latrommi

    latrommi Гость

    ioni,
    Грациас! Но, это немного не то :)

    Упрощу задачу.

    [index.asp]
    Код (Text):
    <%
    s = Request.QueryString("f")

    r = танец_с_бубном(s)

    Response.Write r

    public function f1()
    f1 = "result1"
    end function

    public function f2()
    f2 = "result2"
    end function

    %>
    Теперь при:
    _http://server/index.asp?f=f1 получаем "result1"
    _http://server/index.asp?f=f2 получаем "result2"

    Кхе, нужен код функции танец_с_бубном() :)

    Вся фишка в необходимости вызова функции, имя которой мы узнаем из внешних источников во время выполнения скрипта.
     
  6. latrommi

    latrommi Гость

    Код (Text):
    <%
    s = "f(1)"
    execute "r=f(1)"

    response.Write r

    public function f(i)
    f = i + 1
    end function
    %>
    получаем 2.

    мдя, синтаксис, однако :)
     
  7. ioni

    ioni Well-Known Member

    Регистрация:
    11 май 2006
    Сообщения:
    351
    Симпатии:
    0
    Я что-такое помню - были проблемы у меня..

    Я решал двумя способами:
    1/Передача всех необходимых параметров в одной строке запроса, потому что файлы, вызванные методом Server.Execute() читают строку запросу QueryString основного файла своей - так что, если вызывать (как в моем примере) main.asp?file=file1.asp&view=all, то file1.asp видит значение передаваемого параметра view = all.

    2/ Метод выодва отдельным фалом через WinSocket - но учти, что в таком случае открывается новая сессия для вызываемого файла, со всеми вытекающими последствиями.

    С другой стороны, мне кажется (это может быть и не так), что ты начинаешь использовать ASP для создания кода программы в момент ее исполнения - тогда тебе нужен NET, а не классический ASP.

    Тем более, что НЕТ - это более продвинутая технология, за которой точно будущее (для того, чтобы предотвратить споры - будущее для ASP)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей