Sputti: ASP Code in JS Funktion

Hallo,
habe folgendes Problem, habe eine JS Funktion in welcher auch ASP Code steht. Ich ruf die JS Funktion mit einem Timeout auf. Doch der ASP Code wird sofort ausgeführt und nur der JS Code(die alert Aufrufe)) wartet auf das Ende des Timeouts.
Kann mir jemand sagen, woran das liegt?

function wait(){
setTimeout("alert('TEST Start')",1000);
<%
set objFs = CreateObject("Scripting.FileSystemObject")

strDay = Day(DATE)
strMonth = Month(DATE)
strYear = Year(DATE)
strHour = Hour(TIME)
zeit = TIME
strDateTest = strYear & "" & strMonth & "" & strDay & "" & strHour

strOkFile = "BAQIMW_" & strDateTest & ".ok"
strErrFile = "BAQIMW_" & strDateTest & ".err"
strTestFile = "BAQIMW_" & strDateTest & ".s0x"
strExistOkFile = Server.MapPath(strOkFile)
set FileOkObject = Server.CreateObject("Scripting.FileSystemObject")
strExistTestFile = Server.MapPath(strTestFile)
set FileTestObject = Server.CreateObject("Scripting.FileSystemObject")
strExistErrFile = Server.MapPath(strErrFile)
set FileErrObject = Server.CreateObject("Scripting.FileSystemObject")

if FileOkObject.FileExists(strExistOkFile) then

elseif (FileTestObject.FileExists(strExistTestFile)) OR (FileErrObject.FileExists(strExistErrFile)) then

newTime = DATEADD("s",1,TIME)
newDay = Day(DATE)
newMonth = Month(DATE)
newYear = Year(DATE)
newHour = Hour(newTime)
newMinute = Minute(newTime)
newSecond = Second(newTime)
newDate = newYear & "" & newMonth & "" & newDay & "" & newHour & "" & newMinute & "" & newSecond
newFile = "BAQIMW_" & newDate & ".sms"

strNeueDatei = Server.MapPath(newFile)
strNewSkript = Server.MapPath("uc5.tmp")
Set newTextStream = objFs.CreateTextFile(strNeueDatei, True)

newTextStream.Write strWriteNameX
newTextStream.Write strWriteVornameX
newTextStream.Write (";Tel:")
newTextStream.Write strWriteTelnrX
newTextStream.Close
Set newTextStream = Nothing
'UC Dateiinhalt
strNewFileName = "FILENAME = " & chr(34) & ""& newFile &"" & chr(34) & ""
strNewBuffer = "SHARE = " & chr(34) & "\AR0BQ05\WEB$\LBS2-BS" & chr(34) & ""

Set objSkript = objFs.CreateTextFile(strNewSkript, True)

objSkript.WriteLine strNewFileName
objSkript.WriteLine strNewBuffer
Set objSkript = Nothing

end if
%>
setTimeout("alert('TEST Ende')",1000);
}
window.setTimeout("wait()",10000);

  1. Hallo,

    der Server liefert die Seite an den Client. Natürlich wurde dann bereits der ASP-Code ausgeführt. Den Timeout hat mit dem ASP-Code nicht das geringste zu tun.

    MfG
    MarkX.

    1. So etwas habe ich mir schon gedacht.
      Gibt es deine in ASP keine Möglichkeit einen Timeout einzubauen?
      Ich erklär mein Problem mal genauer:
      Ich schreibe eine Datei auf einen Server(1). Von diesem Server(1) wird sie auf einen nächsten Server(2) geholt.
      Dort wird die Datei bearbeitet und enthält eine neue Endung. Nach ein paar Minuten, wird die Datei mit der neuen Endung, wieder auf den Server(1) geschrieben.
      Dann muss ich die Endung überprüfen und entsprechend reagieren.

      Nun ist die Frage, ob es irgendwas gibt, um die paar Minuten bis zur Überprüfung der Dateiendung zu überbrücken?

      Freu mich über jegliche Tipps!

      1. Hi

        Gibt es deine in ASP keine Möglichkeit einen Timeout einzubauen?

        Ich habe einmal folgende Funktion dafür geschrieben:

        Private Sub Pause(ByVal Seconds)
          Dim t
          t = timeStamp(Seconds)
          Do until timeStamp(0) >= t
          Loop
        End Sub

        Aber vielleicht gibt es auch eine elegantere Lösung.

        FG & HTH

        Tom2

        --
        SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
        ss:| zu:) ls:& fo:) de:] va:) ch:] sh:( n4:& rl:° br:> js:| ie:% fl:( mo:}
        1. Hi

          Ich bin's nochmals. Vielleicht sollte ich auch meine timeStamp-Funktion postn...

          Ich habe einmal folgende Funktion dafür geschrieben:

          Private Sub Pause(ByVal Seconds)
            Dim t
            t = timeStamp(Seconds)
            Do until timeStamp(0) >= t
            Loop
          End Sub

          Private Function timeStamp(ByVal Seconds)
            timeStamp = Int(Now) + (Timer + Seconds) / 86400
          End Function

          FG

          Tom2

          --
          SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
          ss:| zu:) ls:& fo:) de:] va:) ch:] sh:( n4:& rl:° br:> js:| ie:% fl:( mo:}
          1. Habe nun mal meine Funktion umgeschrieben, so dass ich vom JS wegkomme.
            Function wait()
            --Inhalt siehe erste Nachricht.
            End function

            Kann mit deinen beiden Funktionen nicht so richtig was anfangen.
            Mein Ziel ist es nun halt, das die wait() Funktion nach ein paar Minuten aufrufe. Vielleicht kannst mir ja nochmal ein Tipp geben, wie ich das schreibe?

            Gruß

            1. Hi

              Kann mit deinen beiden Funktionen nicht so richtig was anfangen.

              Die eine liefert einen Zeitstempel zurück (timeStamp(n), der um n Sekunden von jetzt verschoben ist.

              Die Prozedur Pause(n) läst den VBScript-Interpreter sich n Sekunden im Kreis drehen.

              Mein Ziel ist es nun halt, das die wait() Funktion nach ein paar Minuten aufrufe. Vielleicht kannst mir ja nochmal ein Tipp geben, wie ich das schreibe?

              Oh, da sehe ich grössere Probleme. Normalerweise läufst du nach 90 Sekunden in das Skript-Timeout. Was willst du denn genau machen? Vielleicht weiss hier jemand eine bessere Lösung.

              FG

              Tom2

              --
              SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
              ss:| zu:) ls:& fo:) de:] va:) ch:] sh:( n4:& rl:° br:> js:| ie:% fl:( mo:}
              1. Ich generiere eine Datei auf einen WebServer. Von dort wird sie auf einen SMS Server geholt. Dort wird 3min lang versucht, die Datei zu versenden. Es gibt drei mögliche neue Endungen der Datei.
                Nach den 3min. wird die Datei mit neuer Endung wieder auf den WebServer geschrieben. Dann muss ich die Endung überprüfen.

                Der folgende Code ist der Teil, welcher die zurückgegebene Datei überprüft. Die Datei wird auf die Endung geprüft und dann entweder neu geschrieben oder die Endung ist in Ordnung.
                Dieser Code soll erst nach 3 Minuten ausgeführt werden.

                Ich habe allerdings überhaupt keine Idee mehr wie ich das machen soll?!

                <%
                Function wait()
                set objFs = CreateObject("Scripting.FileSystemObject")

                strDay = Day(DATE)
                strMonth = Month(DATE)
                strYear = Year(DATE)
                strHour = Hour(TIME)
                zeit = TIME
                strDateTest = strYear & "" & strMonth & "" & strDay & "" & strHour

                strOkFile = "BAQIMW_" & strDateTest & ".ok"
                strErrFile = "BAQIMW_" & strDateTest & ".err"
                strTestFile = "BAQIMW_" & strDateTest & ".s0x"
                strExistOkFile = Server.MapPath(strOkFile)
                set FileOkObject = Server.CreateObject("Scripting.FileSystemObject")
                strExistTestFile = Server.MapPath(strTestFile)
                set FileTestObject = Server.CreateObject("Scripting.FileSystemObject")
                strExistErrFile = Server.MapPath(strErrFile)
                set FileErrObject = Server.CreateObject("Scripting.FileSystemObject")

                if FileOkObject.FileExists(strExistOkFile) then

                elseif (FileTestObject.FileExists(strExistTestFile)) OR (FileErrObject.FileExists(strExistErrFile)) then

                newTime = DATEADD("s",1,TIME)
                newDay = Day(DATE)
                newMonth = Month(DATE)
                newYear = Year(DATE)
                newHour = Hour(newTime)
                newMinute = Minute(newTime)
                newSecond = Second(newTime)
                newDate = newYear & "" & newMonth & "" & newDay & "" & newHour & "" & newMinute & "" & newSecond
                newFile = "BAQIMW_" & newDate & ".sms"

                strNeueDatei = Server.MapPath(newFile)
                strNewSkript = Server.MapPath("uc5.tmp")
                Set newTextStream = objFs.CreateTextFile(strNeueDatei, True)

                newTextStream.Write strWriteNameX
                newTextStream.Write strWriteVornameX
                newTextStream.Write (";Tel:")
                newTextStream.Write strWriteTelnrX
                newTextStream.Close
                Set newTextStream = Nothing
                'UC Dateiinhalt
                strNewFileName = "FILENAME = " & chr(34) & ""& newFile &"" & chr(34) & ""
                strNewBuffer = "SHARE = " & chr(34) & "\AR0BQ05\WEB$\LBS2-BS" & chr(34) & ""

                Set objSkript = objFs.CreateTextFile(strNewSkript, True)

                objSkript.WriteLine strNewFileName
                objSkript.WriteLine strNewBuffer
                Set objSkript = Nothing

                end if
                End Function
                %>

                1. Hi,

                  wenn ich dich jetzt richtig verstehe, dann rufst du eine Seite auf, wo du vielleicht erst nach drei Minuten eine Antwort bekommst?
                  Das ist äußerst schlecht. Mach eine Statusseite, wo sicher der/diejenige über den Versand informieren kann. Eine Timeout-Funktion auf einen Server zu implementieren ist kaum der richtige Weg (Systemresourcen).

                  bernd