Динамический вызов файлов JS для загрузки в классическом приложении asp — чего пытался достичь наш разработчик?

#javascript #asp-classic #vbscript

#javascript #asp-classic #vbscript

Вопрос:

Недавно я взял на себя разработку классического приложения ASP после ухода единственного разработчика в проекте. Есть следующий фрагмент кода, из которого я ни за что на свете не могу извлечь выгоду, может быть, кто-нибудь из вас, более опытных парней и девушек, мог бы пролить свет на логику?

В разделе head нашей страницы default.asp код вызывает другую страницу asp с параметром, чтобы загрузить / включить некоторые файлы. Эта страница asp считывает параметр, а затем выбирает массив файлов. Затем он выполняет цикл по этому массиву и для каждого объекта в массиве выполняет следующую функцию:

 Sub SendFile(ByRef sFilename)
    If Len(sFilename) = 0 Then
        Exit Sub
    End If

    If IsEmpty([__SendFile_sSuffixCompressed]) Then
        [__SendFile_sSuffixCompressed] = ".js"
    End If

    If IsEmpty([__SendFile_fso]) Then
        Set [__SendFile_fso] = Server.CreateObject("Scripting.FileSystemObject")
    End If

    Dim sPath
    sPath = Server.MapPath(sFilename)
    Dim stream
    Dim sData
    Set stream = Server.CreateObject("ADODB.Stream")
    Response.Write sPath
    With stream
        .Charset = "utf-8"
        .Type = 2
        .Open
        .LoadFromFile sPath
        sData = .ReadText
        .Close
    End With

    OurResponse.Write sData
End Sub
  

Я бы подумал, что это был бы способ динамической загрузки этих файлов, но не было бы намного проще просто установить условный блок IF вокруг обычной <script src"...> строки?

Ответ №1:

<script src"...> Строка загрузит скрипт с действительного URL, но, возможно, это способ для веб-приложения включить файлы сценариев на сервере, которые находятся в другом месте файловой системы, недоступные напрямую по общедоступному URL?

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

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

Комментарии:

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