在经典的asp应用程序中动态调用JS文件来加载——这是我们的开发人员试图实现的

Dynamically calling JS files to load in classic asp application - what was our developer trying to achieve?

本文关键字:我们 开发 实现 应用程序 asp 经典 动态 调用 文件 JS 加载      更新时间:2023-09-26

在项目的唯一开发人员离开后,我最近接管了一个经典ASP应用程序的开发。下面有一段代码,就我的一生而言,我无法计算出它的好处,也许你们中一些更有经验的男人和女孩可以阐明其中的逻辑?

在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

我本以为这是一种动态加载这些文件的方法,但在正常的<script src"...>行周围有一个条件IF块不是更容易吗?

<script src"...>行将从有效的URL加载脚本,但这可能是web应用程序在服务器上包含脚本文件的一种方式,而这些脚本文件位于文件系统的其他位置,无法通过公共URL直接访问?

我不知道你为什么要这样做,因为你仍然可以从公共URL调用这个ASP页面来获取脚本,所以它真的不会给你带来安全感,只是混淆。

我个人非常喜欢尽可能删除代码。尝试用您在开发环境中提到的条件脚本标记替换此功能,并测试更改。如果他们是这种无稽之谈的任何隐藏原因,那么你应该能够找到他们。

相关文章: