Pracuję nad klasycznym projektem ASP i niestety nie można przełączać się na inną technologię. Dowiedziałem się, że możliwe jest pisanie serwera Classic Classic ASP w JavaScript (ES3), więc zrobiłem pewne dochodzenie, ale nie mogę znaleźć sposobu do włączenia innego pliku ASP opartego JS z mojego pliku ASP firmy JS.

Oto plik ASP oparty na JS, który chcę importować:

manitalsjs.asp

<%@ Language=JavaScript %>

<%
function myFunction(p1, p2) {
    return p1 + p2;
}

%>

I wypróbowałem następujące 2 sposoby, ani pracowałem

myjs1.asp

<%@ Language=JavaScript %>

<script language="JScript" runat="server" src="./includejs.asp"></script>

<%
    // myFunction is from another file
    Response.Write(myFunction(20,2));
%>

myjs2.asp

<%@ Language=JavaScript %>

<!--#include virtual="./includejs.asp" -->

<%
    // myFunction is from another file
    Response.Write(myFunction(20,2));
%>

moje ustalenia

Byłem w stanie zaimportować czysty plik JavaScript, taki jak następujący przy pierwszej próbie

function myFunction(p1, p2) {
    return p1 + p2;
}

Ale chcę włączyć zawinięty ASP JavaScript, dzięki czemu mogę dołączyć inne pliki z pliku dołączonego JS.

2
Alex 23 lipiec 2020, 18:32

1 odpowiedź

Najlepsza odpowiedź

W końcu to zrozumiałem. Dzięki za komentarz @ płatki na temat nie powinienem umieścić <% @ Language = javascript%> w pliku dołączenia, co było dokładnie powodem, dla którego moje drugie podejście powyżej nie działa.

Tutaj umieściłem bardziej skomplikowany przykład pracy na razie na wypadek, gdyby ktoś go potrzebuje.

Myss.asp zawiera lib.asp, który zawiera lib2.asp

myss.asp - funkcja lib2 () jest z lib2.asp, która jest zawarta przez lib.asp

<%@ Language=JavaScript %>

<!--#include file="lib.asp" -->

<%
    Response.Write(lib());
    Response.Write(lib2());
%>

lib.asp

<!--#include file="lib2.asp" -->

<%
function lib() {
    return "this is lib.asp";
}
%>

lib2.asp

<%
function lib2() {
    return "this is lib2.asp";
}

function myFunction2(p1, p2) {
    return p1 * p2;
}
%>

Wiele rzeczy może pójść źle, więc musisz być ostrożny w każdym szczególe.

Jedną rzeczą do zanotowania jest to, że jeśli używasz względnej ścieżki, jak ja i twój lib.asp jest w tym samym katalogu, musisz użyć Plik = ... zamiast wirtualny =. .. podczas instrukcji #include. Sprawdź Oto, aby zobaczyć więcej szczegółów dotyczących pliku vs. wirtualne w nią dyrektywę

2
Alex 25 lipiec 2020, 02:02