Remote Scripting û ≤Σαδσφφεσ Φ±∩εδφσφΦσ ±Ω≡Φ∩≥α

┬ΓσΣσφΦσ

═α≈φσ∞ ± ∩≡ε±≥επε ∩≡Φ∞σ≡α: Γ√ τα∩εδφ σ≥ ⌠ε≡∞≤ Γ HTML ±≥≡αφΦ÷σ. ┼±δΦ φσΩε≥ε≡√σ ∩εδ  τα∩εδφσφ√ φσΓσ≡φε, ≥ε ∩ε±δσ ε≥∩≡αΓΩΦ ⌠ε≡∞√, ±σ≡Γσ≡, ±Ωε≡σσ Γ±σπε, ∩≡σΣδεµΦ≥ Φ±∩≡αΓΦ≥ⁿ φσΓσ≡φ√σ τφα≈σφΦ . ╧ε±δσ Φ±∩≡αΓδσφΦ  Γ√ ∩εΓ≥ε≡φε ε≥∩≡αΓδ σ≥σ ⌠ε≡∞≤ Φ ≥αΩ Σε ≥σ⌡ ∩ε≡, ∩εΩα Γ±σ Σαφφ√σ φσ ß≤Σ≤≥ τα∩εδφσφ√ ∩≡αΓΦδⁿφε.

╚δΦ ∩≡σΣ∩εδεµΦ∞, ≈≥ε ∩≡Φ ∩σ≡σταπ≡≤τΩσ ±≥≡αφΦ÷√ φσεß⌡εΣΦ∞ε ±ε⌡≡αφΦ≥ⁿ ±ε±≥ε φΦσ ∩σ≡σΩδ■≈α≥σδσΘ Γ HTML ±≥≡αφΦ÷σ ΦδΦ τφα≈σφΦ  πδεßαδⁿφ√⌡ ∩σ≡σ∞σφφ√⌡ Γ ±Ω≡Φ∩≥σ. ─δ  ²≥επε ∩≡Φ⌡εΣΦ≥±  ΦΣ≥Φ φα ∞αφΦ∩≤δ ÷ΦΦ ± HTML (φα∩≡Φ∞σ≡, hidden ∩εδ  Γ ⌠ε≡∞σ Σδ  ∩σ≡σΣα≈Φ Σε∩εδφΦ≥σδⁿφ√⌡ Σαφφ√⌡) ΦδΦ ±ετΣαΓα≥ⁿ ±δεµφ√Θ ±Ω≡Φ∩≥ ΓταΦ∞εΣσΘ±≥ΓΦ .

┬ εß∙σ∞ ±δ≤≈ασ, Γσ≡φ√∞ ß≤Σσ≥ ±δσΣ≤■∙σσ ≤≥Γσ≡µΣσφΦσ: Σδ  εßσ±∩σ≈σφΦ  Φφ≥σ≡αΩ≥ΦΓφεπε ΓταΦ∞εΣσΘ±≥ΓΦ  ± ±σ≡Γσ≡ε∞ φσεß⌡εΣΦ∞ε ≈α±≥ε ∩σ≡σπ≡≤µα≥ⁿ ±≥≡αφΦ÷≤.

╩αΩ φσ≥≡≤Σφε ΣεπαΣα≥ⁿ±  Remote Scripting ≡σ°ασ≥ ε∩Φ±αφφ√σ Γ√°σ ∩≡εßδσ∞√. ╥αΩ ≈≥ε µσ ≥αΩεσ Remote Scripting.

╫≥ε ≥αΩεσ RS?

Remote Scripting (RS) û ²≥ε ∞σ⌡αφΦτ∞, εßσ±∩σ≈ΦΓα■∙ΦΘ Γ√τεΓ ±σ≡Γσ≡φ√⌡ ∩≡ε÷σΣ≤≡ Φτ ΩδΦσφ≥±Ωεπε ±Ω≡Φ∩≥α. ╤ ∩ε∞ε∙ⁿ■ RS, ∩≡ε÷σΣ≤≡√ Φ ⌠≤φΩ÷ΦΦ, ε∩Φ±αφφ√σ φα ±σ≡Γσ≡σ, ∞επ≤≥ Γ√τ√Γα≥ⁿ±  Φτ ±Ω≡Φ∩≥α HTML ±≥≡αφΦ÷√, Φ±∩εδφ ■∙σπε±  Γ ß≡α≤τσ≡σ ∩εδⁿτεΓα≥σδ . ┬√τ√Γασ∞√σ ∩≡ε÷σΣ≤≡√ Φ ⌠≤φΩ÷ΦΦ ß≤Σσ∞ ≥αΩµσ φατ√Γα≥ⁿ ±σ≡Γσ≡φ√∞Φ ∞σ≥εΣα∞Φ, Σαδσσ Γ√ ∩εΘ∞σ≥σ ∩ε≈σ∞≤. ╤σ≡Γσ≡φ√σ ∞σ≥εΣ√ ε∩Φ±√Γα■≥±  Γ ASP ±≥≡αφΦ÷σ Φ Σδ  Φ⌡ ≡σαδΦτα÷ΦΦ ∩εΣ⌡εΣΦ≥ δ■ßεΘ  τ√Ω ±÷σφα≡ΦσΓ (JavaScript, VBScript). ╧≡Φ ≤Σαδσφφε∞ Γ√τεΓσ ∩≡ε÷σΣ≤≡√ Φ ⌠≤φΩ÷ΦΦ Φ±∩εδφ ■≥±  φα ±σ≡Γσ≡σ ± ∩εδφ√∞ Σε±≥≤∩ε∞ Ω ±Φ±≥σ∞φ√∞ ≡σ±≤≡±α∞, α ≡στ≤δⁿ≥α≥ ≡αßε≥√ ΓετΓ≡α∙ασ≥±  Γ ΩδΦσφ≥±ΩΦΘ ±Ω≡Φ∩≥.

╥σ∩σ≡ⁿ ≡ατ≡αßε≥≈ΦΩΦ ∞επ≤≥ ±ετΣαΓα≥ⁿ Φφ≥σ≡αΩ≥ΦΓφ√σ Web ∩≡ΦδεµσφΦ , Γ Ωε≥ε≡√⌡ ∩ε Γδ σ≥±  Γετ∞εµφε±≥ⁿ Φ±∩εδφ ≥ⁿ ±σ≡Γσ≡φ√Θ ±Ω≡Φ∩≥ ßστ εßφεΓδσφΦ  ±≥≡αφΦ÷√.

C Φ±∩εδⁿτεΓαφΦσ∞ RS Web ∩≡ΦδεµσφΦΦ ∞εµσ≥ ∩≡εΓσ≡Φ≥ⁿ Ωε≡≡σΩ≥φε±≥ⁿ ΓΓεΣΦ∞√⌡ ∩εδⁿτεΓα≥σδσ∞ Σαφφ√⌡ Γ ∩≡ε÷σ±±σ τα∩εδφσφΦ  ⌠ε≡∞√, Φτßσπα  ∩σ≡σταπ≡≤τΩΦ.

╤ ∩ε ΓδσφΦσ∞ RS, Web ∩≡ΦδεµσφΦσ ∞εµσ≥ Φ±∩εδⁿτεΓα≥ⁿ ΩαΩ ΩδΦσφ≥±ΩΦΘ, ≥αΩ Φ ±σ≡Γσ≡φ√Θ ±Ω≡Φ∩≥. ╩δΦσφ≥±ΩΦΘ ±Ω≡Φ∩≥ ≈α±≥ε Φ±∩εδⁿτ≤σ≥±  Σδ  ≤∩≡αΓδσφΦ  ∩εδⁿτεΓα≥σδⁿ±ΩΦ∞ Φφ≥σ≡⌠σΘ±ε∞, φα∩≡Φ∞σ≡, ΣΦφα∞Φ≈σ±Ωεσ Φτ∞σφσφΦσ ±εΣσ≡µΦ∞επε Web ±≥≡αφΦ÷√ ΦδΦ εß≡αßε≥Ωα ΣσΘ±≥ΓΦΘ ∩εδⁿτεΓα≥σδ . ╩δΦσφ≥±ΩΦΘ ±Ω≡Φ∩≥ Γ√∩εδφ σ≥±  δεΩαδⁿφε Γ ß≡α≤τσ≡σ Φ εßσ±∩σ≈ΦΓασ≥ Φφ≥σ≡αΩ≥ΦΓφ√Θ Φφ≥σ≡⌠σΘ±.

┬ετ∞εµφε±≥Φ ∩≡Φ∞σφσφΦ  ±σ≡Γσ≡φεπε ±Ω≡Φ∩≥α επ≡αφΦ≈ΦΓα■≥±  ≥εδⁿΩε Γα°σΘ ⌠αφ≥ατΦσΘ. ╤σ≡Γσ≡φ√Θ ±Ω≡Φ∩≥ ∞εµσ≥ Φ±∩εδⁿτεΓα≥ⁿ±  Σδ  Σε±≥≤∩α Ω ßατσ Σαφφ√⌡ ΦδΦ Γ√∩εδφσφΦ  τΓσφα ßΦτφσ± δεπΦΩΦ Γ ∞φεπε±δεΘφ√⌡ ∩≡ΦδεµσφΦ . ╧≡Φ ²≥ε∞ ±σ≡Γσ≡φ√Θ ±Ω≡Φ∩≥ Φ±∩εδφ σ≥±  φα ±σ≡Γσ≡σ ± ∩εδφ√∞ Σε±≥≤∩ε∞ Ω ≡σ±≤≡±α∞ ±σ≡Γσ≡α, α Φτ ΩδΦσφ≥±Ωεπε ±Ω≡Φ∩≥α σπε Γ√τεΓ ∩ε≈≥Φ φΦ≈σ∞ φσ ε≥δΦ≈ασ≥±  ε≥ Γ√τεΓα δεΩαδⁿφ√⌡ ∩≡ε÷σΣ≤≡ Φ ∞σ≥εΣεΓ.

╥αΩ ΩαΩ ∩≡Φ Γ√τεΓσ ±σ≡Γσ≡φεπε ±Ω≡Φ∩≥α ≥σΩ≤∙α  ±≥≡αφΦ÷α φσ ∩εΩΦΣασ≥± , ≥ε σσ ±ε±≥ε φΦ  ±ε⌡≡αφ σ≥± , α Γ∞σ±≥σ ± φσΘ Φ ±ε±≥ε φΦσ ∩σ≡σΩδ■≈α≥σδσΘ Φ πδεßαδⁿφ√⌡ ∩σ≡σ∞σφφ√⌡.

╩αΩ RS ≡αßε≥ασ≥

RS ≡σαδΦτεΓαφ ΩαΩ ßΦßδΦε≥σΩα ⌠≤φΩ÷ΦΘ, Ωε≥ε≡√σ Γ√τ√Γα■≥±  Φτ ΩδΦσφ≥±Ωεπε ±Ω≡Φ∩≥α ∩≡Φ φσεß⌡εΣΦ∞ε±≥Φ Γ√τεΓα ±σ≡Γσ≡φεπε ∞σ≥εΣα. ╧≡Φ Γ√τεΓσ ±σ≡Γσ≡φεπε ∞σ≥εΣα, τα∩≡ε± Γ√Σσδ σ≥±  Γ ∩≡εΩ±Φ ∩≡ε÷σ±±, Ωε≥ε≡√Θ τα∩≤±Ωασ≥±  α±Φφ⌡≡εφφε Γ ß≡α≤τσ≡σ (φα Σαφφ√Θ ∞ε∞σφ≥ ∩≡εΩ±Φ ≡σαδΦτεΓαφ ΩαΩ Java α∩∩δσ≥√). ╧≡εΩ±Φ ∩≡ε÷σ±± ∩ε±√δασ≥ τα∩≡ε± Γ ASP ±≥≡αφΦ÷≤, ±εΣσ≡µα∙≤■ Γ√τ√Γασ∞√Θ ∞σ≥εΣ. ╧ε ΩδΦσφ≥±Ωε∞≤ τα∩≡ε±≤ ±σ≡Γσ≡ ταπ≡≤µασ≥ ASP ±≥≡αφΦ÷≤, Φ ±∩σ÷Φαδⁿφα  ∩≡ε÷σΣ≤≡α ∩ε±√δασ≥ τα∩≡ε± φσεß⌡εΣΦ∞ε∞≤ ∞σ≥εΣ≤. ┼±δΦ ∞σ≥εΣ ΓετΓ≡α∙ασ≥ τφα≈σφΦσ, ≥ε εφε ε≥±√δασ≥±  εß≡α≥φε Γ ∩≡εΩ±Φ ∩≡ε÷σ±±, Ωε≥ε≡√Θ ≤∩αΩεΓ√Γασ≥ σπε ΩαΩ εß·σΩ≥ û call εß·σΩ≥ - ±εΣσ≡µα∙ΦΘ ≡στ≤δⁿ≥α≥ ≡αßε≥√ ∞σ≥εΣα Φ Σ≡≤π≤■ ∩εδστφ≤■ Φφ⌠ε≡∞α÷Φ■.

╤≤∙σ±≥Γ≤σ≥ ΣΓα Γα≡Φαφ≥α Γ√τεΓα ±σ≡Γσ≡φ√⌡ ∞σ≥εΣεΓ:

╩ε∞∩εφσφ≥√ φσεß⌡εΣΦ∞√σ Σδ  Remote Scripting

─δ  Φ±∩εδⁿτεΓαφΦ  RS φσεß⌡εΣΦ∞√ ±δσΣ≤■∙Φσ ⌠αΘδ√ Γ Σε∩εδφσφΦΦ Ω Γα°Φ∞ ΩδΦσφ≥±ΩΦ∞ (*.htm) Φ ±σ≡Γσ≡φ√∞ (*.asp) ⌠αΘδα∞:

▌≥Φ ⌠αΘδ√ ≡αßε≥α■≥ ΩαΩ ßΦßδΦε≥σΩΦ, Γ√ ∩≡ε±≥ε ΓΩδ■≈ασ≥σ φσεß⌡εΣΦ∞√σ ⌠αΘδ√ (Rs.htm ΦδΦ Rs.asp) Γ Γα°≤ ΩδΦσφ≥±Ω≤■ ΦδΦ ±σ≡Γσ≡φ≤■ ±≥≡αφΦ÷≤, Φ Γ√τ√Γασ≥σ φσεß⌡εΣΦ∞√σ ±σ≡Γσ≡φ√σ ∞σ≥εΣ√.

┬±σ φσεß⌡εΣΦ∞√σ ⌠αΘδ√ Σεδµφ√ ß√≥ⁿ Σε±≥≤∩φ√ φα ±σ≡Γσ≡σ, ∩ε ≤∞εδ≈αφΦ■ ∩≡σΣ∩εδαπασ≥± , ≈≥ε ²≥Φ ⌠αΘδ√ φα⌡εΣ ≥±  Γ ∩α∩Ωσ _ScriptLibrary.

RS Φ ßστε∩α±φε±≥ⁿ

RS εßσ±∩σ≈ΦΓασ≥ ≥αΩεΘ µσ ≤≡εΓσφⁿ ßστε∩α±φε±≥Φ ΩαΩ Java α∩∩δσ≥√ Φ IFrames. ╧ε ≥≡σßεΓαφΦ ∞ ßστε∩α±φε±≥Φ, ±σ≡Γσ≡φ√σ ∞σ≥εΣ√ φσ ∞επ≤≥ ∩≡ΦφΦ∞α≥ⁿ Γ Ωα≈σ±≥Γσ ∩α≡α∞σ≥≡εΓ ±≥≡≤Ω≥≤≡Φ≡εΓαφφ√σ Σαφφ√σ (εß·σΩ≥√ ΦδΦ ∞α±±ΦΓ√). ╩ ≥ε∞≤ µσ, ≤Σαδσφφ√σ ∩≡ε÷σΣ≤≡√ Σεδµφ√ Γ√∩εδφ ≥ⁿ±  φα ≥ε∞ µσ ±σ≡Γσ≡σ, ε≥Ω≤Σα ß√δα ταπ≡≤µσφα ±≥≡αφΦ÷α.

╬ßσ±∩σ≈σφΦσ RS ± ΩδΦσφ≥±ΩεΘ ±≥ε≡εφ√

─δ  εßσ±∩σ≈σφΦ  RS ± ΩδΦσφ≥±ΩεΘ ±≥ε≡εφ√ φσεß⌡εΣΦ∞ε:

═σεß⌡εΣΦ∞ε ±ετΣα≥ⁿ ∩≤±≥εΘ JavaScript ßδεΩ, Ωε≥ε≡√Θ ±±√δασ≥±  φα ⌠αΘδ Rs.htm, ΩαΩ ∩εΩαταφε φΦµσ:

<script language = "JavaScript" 
src = "../_ScriptLibrary/RS.htm">

┬ ΩδΦσφ≥±ΩεΘ ±≥≡αφΦ÷σ ²≥ε≥ ßδεΩ ∞εµσ≥ ≡α±∩εδαπα≥ⁿ±  Γ δ■ßε∞ ∞σ±≥σ, φε Σε ∩σ≡Γεπε ≤Σαδσφφεπε Γ√τεΓα.

╥αΩµσ Φτ ΩδΦσφ≥±ΩεΘ ±≥≡αφΦ÷√ φσεß⌡εΣΦ∞ε Γ√∩εδφΦ≥ⁿ Γ√τεΓ ∞σ≥εΣα RSEnableRemoteScripting(). ╧ε ≤∞εδ≈αφΦ■ ²≥ε≥ ∞σ≥εΣ ∩≡σΣ∩εδαπασ≥, ≈≥ε α∩∩δσ≥ Rsproxy.class φα⌡εΣΦ≥±  Γ ∩α∩Ωσ _ScriptLibrary, σ±δΦ ²≥ε φσ ≥αΩ φσεß⌡εΣΦ∞ε ≤Ωατα≥ⁿ ∩≡αΓΦδⁿφ√Θ ∩≤≥ⁿ Γ Ωα≈σ±≥Γσ ∩α≡α∞σ≥≡α. ▌≥ε≥ ±Ω≡Φ∩≥-ßδεΩ Σεδµσφ ≡α±∩εδαπα≥ⁿ±  Γ ∩≡σΣσδα⌡ ≥σδα ΣεΩ≤∞σφ≥α, φε ∩ε±δσ ±Ω≡Φ∩≥-ßδεΩα ±±√δα■∙σπε±  φα Rs.htm.

<body>
<script language = "JavaScript">
RSEnableRemoteScripting("../_ScriptLibrary");
</script>

Note: ╥απ <APPLET> ±ετΣαΓασ∞√∞ ∞σ≥εΣε∞ RSEnableScriptong() φΦπΣσ  Γφ√∞ εß≡ατε∞ Γ ±≥≡αφΦ÷σ φσ ⌠Φπ≤≡Φ≡≤σ≥.

╩α≡Ωα± ΩδΦσφ≥±ΩεΘ ±≥≡αφΦ÷√ Φ±∩εδⁿτ≤■∙σΘ Γ√τεΓ ≤Σαδσφφ√⌡ ∩≡ε÷σΣ≤≡ Γ√πδ ΣΦ≥ ∩≡Φ∞σ≡φε ≥αΩ:

<html>
<head>
<title>Remote Scripting Test</title>
</head>
<body>
<script language = "JavaScript"
 src = "../_ScriptLibrary/RS.htm">
</script>
<script language = "JavaScript">
RSEnableRemoteScripting("../_ScriptLibrary");
</script>
</body>
</html>
╬ßσ±∩σ≈σφΦσ RS ± ±σ≡Γσ≡φεΘ ±≥ε≡εφ√

─δ  ≡αßε≥√ ± RS φσεß⌡εΣΦ∞ε ≥αΩµσ φα±≥≡εΦ≥ⁿ Φ ±σ≡Γσ≡φ√σ ±≥≡αφΦ÷√. ─δ  ²≥επε φσεß⌡εΣΦ∞ε:

╧ε ≤∞εδ≈αφΦ■ ASP ±≥≡αφΦ÷√, Γ√τ√Γασ∞√σ Φτ ΩδΦσφ≥±Ωεπε ±Ω≡Φ∩≥α, φσ ε≥εß≡αµα■≥±  Γ ß≡α≤τσ≡σ - εφΦ ∩≡ε±≥ε Γ√∩εδφ ■≥±  φα ±σ≡Γσ≡σ, α ≡στ≤δⁿ≥α≥ ε≥±√δασ≥±  ΩδΦσφ≥≤. ╤δσΣεΓα≥σδⁿφε, φσ≥ φσεß⌡εΣΦ∞ε±≥Φ ΓΩδ■≈α≥ⁿ HTML ≥απΦ Γ ASP ±≥≡αφΦ÷≤.

─δ  ∩εΣΩδ■≈σφΦ  Φ ΦφΦ÷ΦαδΦτα÷ΦΦ ±σ≡Γσ≡φ√⌡ ßΦßδΦε≥σΩ ≤Σαδσφφεπε Γ√τεΓα ∩≡ε÷σΣ≤≡ φσεß⌡εΣΦ∞ε:

<!-- #INCLUDE FILE = "../_ScriptLibrary/RS.ASP" -->
<% RSDispatch %>

Note: ╧≡Φ Γ√τεΓσ ≤Σαδσφφ√⌡ ∩≡ε÷σΣ≤≡ Γ±σ ∩α≡α∞σ≥≡√ ∩≡σεß≡ατ≤■≥±  Γ ±≥≡εΩΦ Φ σ±δΦ Γ√ Φ±∩εδⁿτ≤σ≥σ Σ≡≤πΦσ ∩≡ε±≥√σ ≥Φ∩√ φσεß⌡εΣΦ∞ε Γ≡≤≈φ≤■ ∩≡ΦΓεΣΦ≥ⁿ Φ⌡ Ω φ≤µφε∞≤ ≥Φ∩≤ Γ Γ√τ√Γασ∞εΘ ∩≡ε÷σΣ≤≡σ.

╧ε±δσ ±ετΣαφΦ  ⌠≤φΩ÷ΦΘ Φ ∩≡ε÷σΣ≤≡ φσεß⌡εΣΦ∞ε εß· ΓΦ≥ⁿ Φ⌡ ±σ≡Γσ≡φ√∞Φ ∞σ≥εΣα∞Φ. ─δ  ²≥επε ±ετΣασ≥±  εß·σΩ≥ public_description ±εΣσ≡µα∙ΦΘ ε∩Φ±αφΦσ φ≤µφ√⌡ ⌠≤φΩ÷ΦΘ Φ ∩≡ε÷σΣ≤≡. ┬ ±δσΣ≤■∙σ∞ ∩≡Φ∞σ≡σ Γ Ωα≈σ±≥Γσ Ωεφ±≥≡≤Ω≥ε≡α εß·σΩ≥α public_description Γ√τ√Γασ≥±  ⌠≤φΩ÷Φ  MyServerMethod():

<script languge = "JavaScript">
var public_description = new MyServerMethods();

┬ Ωεφ±≥≡≤Ω≥ε≡σ ±ε∩ε±≥αΓδ ■≥±  Φ∞σφα Γ√τ√Γασ∞√⌡ ⌠≤φΩ÷ΦΘ Φ Φ∞σφα ±σ≡Γσ≡φ√⌡ ∞σ≥εΣεΓ.

function constructor() {
//for JavaScript methods
this.methodName = functionName;
//for VBScript methods
this.methodName = Function('p1','p2','return
 functionName(p1,p2)')
}

├Σσ:

Note: ╠σ⌡αφΦτ∞ εß· ΓδσφΦ  Φφ≥σ≡⌠σΘ±α ∩ε±≡σΣ±≥Γε∞ εß·σΩ≥α public_description ≡σαδΦτεΓαφ ≥εδⁿΩε Γ JavaScript.

╤δσΣ≤■∙ΦΘ ∩≡Φ∞σ≡ Σσ∞εφ±≥≡Φ≡≤σ≥ ASP ±≥≡αφΦ÷≤, Γ Ωε≥ε≡εΘ εß· Γδ σ≥±  ΣΓα ±σ≡Γσ≡φ√⌡ ∞σ≥εΣα square Φ add:

<% RSDispatch %>
<!--#INCLUDE FILE="../_ScriptLibrary/RS.ASP"-->

<script runat = server language = "JavaScript">
   var public_description = new MyServerMethods();

   function MyServerMethods() {
      this.square = squareNumber;
      this.add = Function( 'n1','n2','return
	   addNumbers(n1,n2)' );
   }

   function squareNumber(numberToSquare){
      return numberToSquare * numberToSquare;
   }
</script>

< script runat = server language ="VBScript">
   Function addNumbers(num1, num2)
      addNumbers = CInt(num1) + CInt(num2)
   End Function
</script>

┬√τεΓ ±σ≡Γσ≡φ√⌡ ∞σ≥εΣεΓ

RS ∩ετΓεδ σ≥ ±ετΣα≥ⁿ εß·σΩ≥, Ωε≥ε≡√Θ ±±√δασ≥±  φα ASP ±≥≡αφΦ÷≤, ±εΣσ≡µα∙≤■ ε∩Φ±αφΦσ ±σ≡Γσ≡φ√⌡ ∞σ≥εΣεΓ. ▌≥ε ∩ετΓεδ σ≥ Φ±∩εδⁿτεΓα≥ⁿ ±≥αφΣα≡≥φ√Θ object.method() ±Φφ≥αΩ±Φ± Σδ  Γ√τεΓα ≤Σαδσφφ√⌡ ∞σ≥εΣεΓ. ─αδσσ ²≥ε≥ εß·σΩ≥ ß≤Σσ∞ Σδ  ∩≡ε±≥ε≥√ φατ√Γα≥ⁿ page εß·σΩ≥ε∞.

╫≥εß√ ±ε±δα≥ⁿ±  φα ASP ±≥≡αφΦ÷≤ ΩαΩ φα εß·σΩ≥ φσεß⌡εΣΦ∞ε Γ ΩδΦσφ≥±Ωε∞ ±Ω≡Φ∩≥σ Γ√τΓα≥ⁿ ∞σ≥εΣ RSGetASPObject(), ∩σ≡σΣαΓα  URL Φ Φ∞  ASP ±≥≡αφΦ÷√ Γ Ωα≈σ±≥Γσ ∩α≡α∞σ≥≡α.

ASPobj = RSGetASPObject(url)

╤Φφ⌡≡εφφ√Θ Γ√τεΓ

╧ε±δσ φα±≥≡εΘΩΦ RS Γ√ ∞εµσ≥σ Γ√τ√Γα≥ⁿ ±σ≡Γσ≡φ√σ ∞σ≥εΣ√ Φτ ΩδΦσφ≥±Ωεπε ±Ω≡Φ∩≥α. ╧ε ≤∞εδ≈αφΦ■ Γ√τεΓ ±σ≡Γσ≡φεπε ∞σ≥εΣα ε±≤∙σ±≥Γδ σ≥±  ±Φφ⌡≡εφφε û ΩδΦσφ≥±ΩΦΘ ±Ω≡Φ∩≥ ε±≥αφαΓδΦΓασ≥±  Σε εΩεφ≈αφΦ  ≡αßε≥√ Γ√τ√Γασ∞επε ∞σ≥εΣα Φ ΓετΓ≡α∙σφΦ  ≡στ≤δⁿ≥α≥α ≡αßε≥√.

┬ Ωα≈σ±≥Γσ ≡στ≤δⁿ≥α≥α ≡αßε≥√ Γ ΩδΦσφ≥±ΩΦΘ ±Ω≡Φ∩≥ ΓετΓ≡α∙ασ≥±  εß·σΩ≥ call, Ωε≥ε≡√Θ ±εΣσ≡µΦ≥ ≡στ≤δⁿ≥α≥ ≡αßε≥√ Φ Σε∩εδφΦ≥σδⁿφ≤■ ±≥α≥≤±φ≤■ Φφ⌠ε≡∞α÷Φ■. ╤ΓεΘ±≥Γε return_value εß·σΩ≥α call ±εΣσ≡µΦ≥ ≡στ≤δⁿ≥α≥ ≡αßε≥√ ≤Σαδσφφεπε ∞σ≥εΣα. ─≡≤πΦσ ±ΓεΘ±≥Γα εß·σΩ≥α call ∩ετΓεδ ■≥ ∩εδ≤≈Φ≥ⁿ Φφ⌠ε≡∞α÷Φ■ ε ±≥α≥≤±σ Γ√τεΓα ≤ΣαδσφφεΘ ∩≡ε÷σΣ≤≡√.

┼±δΦ Γ√ ±ετΣαδΦ page εß·σΩ≥, ≥ε ∞εµφε Φ±∩εδⁿτεΓα≥ⁿ ±≥αφΣα≡≥φ√Θ object.method() ±Φφ≥αΩ±Φ± Σδ  Γ√τεΓα ∩≡ε÷σΣ≤≡√. ═ε Ω≡ε∞σ ²≥επε σ±≥ⁿ Γετ∞εµφε±≥ⁿ Γ√τεΓα ±σ≡Γσ≡φ√⌡ ∞σ≥εΣεΓ ßστ page εß·σΩ≥α.

─δ  Γ√τεΓα ±σ≡Γσ≡φεπε ∞σ≥εΣα ±Φφ⌡≡εφφε:

JavaScript:

callObject = ASPObject.methodName(p1, p2[,...])

VBScript:

set callObject = ASPObject.methodName(p1, p2[,...])

JavaScript:

callobject = RSExecute(url, 
methodName, p1, p2[,...])

VBScript:

set callobject = RSExecute(url, 
methodName, p1, p2[,...])

├Σσ:

┬ Ωα≈σ±≥Γσ ∩≡Φ∞σ≡α ≡α±±∞ε≥≡Φ∞ ±Ω≡Φ∩≥, Γ Ωε≥ε≡ε∞ ∩≡Φ φαµα≥ΦΦ φα Ωφε∩Ω≤ btnAdd Γ√τ√Γασ≥±  ±σ≡Γσ≡φ√Θ ∞σ≥εΣ Add. ┬ Ωα≈σ±≥Γσ ∩α≡α∞σ≥≡εΓ ∩σ≡σΣασ≥±  ±εΣσ≡µΦ∞εσ ∩εδσΘ ΓΓεΣα txt1 Φ txt2, α ≡στ≤δⁿ≥α≥ Γ√ΓεΣΦ≥±  Γ ≥σΩ±≥εΓε∞ ∩εδσ txt3:

<script language = "JavaScript" for =  "btnAdd"
 event="onclick">
rsMath = RSGetASPObject("../myPages/RSMath.asp");
number1 = txt1.value;
number2 = txt2.value;
co = rsMath.Add(number1,number2);
txt3.value = "The sum is " + co.return_value;
</script>

└φαδεπΦ≈φ√Θ Γ√τεΓ, φε ßστ Φ±∩εδⁿτεΓαφΦ  page εß·σΩ≥α:

<script language = "JavaScript" for = "btnAdd"
 event="onclick">
number1 = txt1.value;
number2 = txt2.value;
co = RSExecute("RSmath.asp","add",number1,number2);
txt3.value = "The sum is " + co.return_value;
</script>

╩αΩ ΓΦΣφε Φτ Γ≥ε≡επε ∩≡Φ∞σ≡α Σδ  ≤Σαδσφφεπε Γ√τεΓα Φ±∩εδⁿτ≤σ≥±  ⌠≤φΩ÷Φ  RSExecute(). ┬ Ωα≈σ±≥Γσ ∩α≡α∞σ≥≡εΓ ∩σ≡σΣασ≥±  URL ASP ±≥≡αφΦ÷√, Φ∞  ±σ≡Γσ≡φεπε ∞σ≥εΣα Φ ∩α≡α∞σ≥≡√.

└±Φφ⌡≡εφφ√Θ Γ√τεΓ

╠εµφε Γ√τ√Γα≥ⁿ ≤Σαδσφφ√σ ∞σ≥εΣ√ α±Φφ⌡≡εφφε û ΩδΦσφ≥±ΩΦΘ ±Ω≡Φ∩≥ ∩≡εΣεδµασ≥ ≡αßε≥α≥ⁿ ∩εΩα ±σ≡Γσ≡φ√Θ ∞σ≥εΣ Φ±∩εδφ σ≥±  Φ ±δσΣεΓα≥σδⁿφε ±≥≡αφΦ÷α ε±≥ασ≥±  Σε±≥≤∩φεΘ Σδ  ∩εδⁿτεΓα≥σδ .

┬√τεΓ ±σ≡Γσ≡φεπε ∞σ≥εΣα α±Φφ⌡≡εφφε ±⌡εµ ± ±Φφ⌡≡εφφ√∞ Γ√τεΓε∞, τα Φ±Ωδ■≈σφΦσ∞ ∩ε ΓδσφΦ  Σε∩εδφΦ≥σδⁿφ√⌡ ∩α≡α∞σ≥≡εΓ ∩≡Φ Γ√τεΓσ:

╩αΩ Φ ∩≡Φ ±Φφ⌡≡εφφε∞ Γ√τεΓσ, α±Φφ⌡≡εφφ√Θ Γ√τεΓ ±ετΣασ≥ εß·σΩ≥ call, ±εΣσ≡µα∙ΦΘ ≡στ≤δⁿ≥α≥ ≡αßε≥√ ±σ≡Γσ≡φεπε ∞σ≥εΣα Φ Σε∩εδφΦ≥σδⁿφ≤■ ±≥α≥≤±φ≤■ Φφ⌠ε≡∞α÷Φ■.

╧≡Φ α±Φφ⌡≡εφφε∞ Γ√τεΓσ εß·σΩ≥ call ∩σ≡σΣασ≥±  Γ callback ⌠≤φΩ÷Φ■ Γ Ωα≈σ±≥Γσ ∩α≡α∞σ≥≡α. ╤δσΣεΓα≥σδⁿφε, Γ√ ∞εµσ≥σ ∩≡εΓσ≡Φ≥ⁿ ±≥α≥≤± Γ√τεΓα Φ ∩εδ≤≈Φ≥ⁿ ≡στ≤δⁿ≥α≥ ≡αßε≥√ ∞σ≥εΣα.

╥αΩ ΩαΩ ∩≡Φ α±Φφ⌡≡εφφε∞ Γ√τεΓσ φσεß⌡εΣΦ∞ε ∩σ≡σΣα≥ⁿ ±±√δΩ≤ φα callback ⌠≤φΩ÷Φ■, ≥ε Φ±∩εδⁿτ≤σ≥±  ≥εδⁿΩε JavaScript.

─δ  Γ√τεΓα ±σ≡Γσ≡φεπε ∞σ≥εΣα α±Φφ⌡≡εφφε:

callObject = ASPObject.methodName(p1, p2[,...],
 callbackFunction,
   errorCallbackFunction, context);
callobject = RSExecute(url, methodName, p1, p2[,...],
 callbackFunction,
   errorCallbackFunction, context)

├Σσ:

═α∩≡Φ∞σ≡, Γ ±δσΣ≤■∙σ∞ ±Ω≡Φ∩≥σ α±Φφ⌡≡εφφε Γ√τ√Γασ≥±  ±σ≡Γσ≡φ√Θ ∞σ≥εΣ square. ╧ε±δσ ≡αßε≥√ ∞σ≥εΣα Γ√τ√Γασ≥±  ⌠≤φΩ÷Φ  showResults(). ╚∞  ε∩σ≡α÷ΦΦ ∩σ≡σΣασ≥±  ΩαΩ context-∩α≡α∞σ≥≡.

<script language = "JavaScript" for = "btnSquare"
 event = "onclick">
rsMath = RSGetASPObject("../myPages/RSMath.asp");
number1 = txt1.value;
context = "squaring";
co = rsMath.square(number1,showResults,context);
</script>

└φαδεπΦ≈φ√Θ ∩≡Φ∞σ≡ ± Φ±∩εδⁿτεΓαφΦσ∞ RSExecute ∞σ≥εΣα:

<script language = "JavaScript" for = "btnSquare"
 event = "onclick">
number1 = txt1.value;
context = "squaring";
co = RSExecute("RSmath.asp","square",
number1,showResults,context);
</script>

╘≤φΩ÷Φ  showResults, Ωε≥ε≡α   Γδ σ≥±  callback ⌠≤φΩ÷ΦΘ Γ ∩≡σΣ√Σ≤∙σ∞ ∩≡Φ∞σ≡σ, ∞εµσ≥ Γ√πδ Σσ≥ⁿ ±δσΣ≤■∙Φ∞ εß≡ατε∞:

<script language = "JavaScript">
function showResults(co) {
 typeOp = co.context;
 rValue = co.return_value;
 txt2.value = "Result of " + typeOp +
  "operation = " + rValue;
}
</script>

┬ Σαφφε∞ ±δ≤≈ασ callback ⌠≤φΩ÷Φ  ±δ≤µΦ≥ Σδ  Γ√ΓεΣα ≡στ≤δⁿ≥α≥α ≡αßε≥√ ε∩σ≡α÷ΦΦ. ╘≤φΩ÷Φ  Σσ∞εφ±≥≡Φ≡≤σ≥, ΩαΩ Γ√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ context ±ΓεΘ±≥Γε Σδ  ε∩≡σΣσδσφΦ  ≥επε, ΩαΩα  ε∩σ≡α÷Φ  α≡Φ⌠∞σ≥Φ≈σ±Ωα  ∩≡Φ∞σφ δα±ⁿ.

┬√ ∞εµσ≥σ ∩≡εΓσ≡Φ≥ⁿ ±ε±≥ε φΦσ ≡αßε≥√ ≤Σαδσφφεπε ∞σ≥εΣα. ╧≡Φ α±Φφ⌡≡εφφε∞ Γ√τεΓσ, ∞εµφε ∩≡εΓσ≡Φ≥ⁿ ±ε±≥ε φΦσ ≡αßε≥√ ±σ≡Γσ≡φεπε ∞σ≥εΣα. ─δ  ²≥επε Φ±∩εδⁿτ≤σ≥±  ±ΓεΘ±≥Γα status εß·σΩ≥α call ┬ετ∞εµφ√σ τφα≈σφΦ  ±ΓεΘ±≥Γα status:

└±Φφ⌡≡εφφ√Θ Γ√τεΓ ∞εµφε ∩≡σ≡Γα≥ⁿ, Σδ  ²≥επε Φ±∩εδⁿτ≤σ≥±  cancel() ∞σ≥εΣ εß·σΩ≥α call.

╬ß≡αßε≥Ωα ε°ΦßεΩ

╧≡Φ Γ√τεΓσ ≤Σαδσφφ√⌡ ±σ≡Γσ≡φ√⌡ ∞σ≥εΣεΓ ∞επ≤≥ ∩≡εΦ±⌡εΣΦ≥ⁿ ≡ατφεπε ≡εΣα ε°ΦßΩΦ: ±Φφ≥αΩ±Φ≈σ±ΩΦσ ε°ΦßΩΦ, ε°ΦßΩΦ Γ≡σ∞σφΦ Φ±∩εδφσφΦ , ε°ΦßΩΦ ∩≡Φ Γ√τεΓσ ∞σ≥εΣεΓ. RS Φ∞σσ≥ ∞σ⌡αφΦτ∞√ ε∩εΓσ∙σφΦ  ε ∩≡εΦ±⌡εΣ ∙Φ⌡ ε°ΦßΩα⌡.

╨σαΩ÷Φ  φα ε°ΦßΩΦ φσ∞φεπε ≡ατδΦ≈ασ≥±  ∩≡Φ ±Φφ⌡≡εφφε∞ Φ α±Φφ⌡≡εφφε∞ Γ√τεΓσ. ┼±δΦ ∩≡Φ ±Φφ⌡≡εφφε∞ Γ√τεΓσ ∩≡εΦτε°δα ε°ΦßΩα, ∞σ⌡αφΦτ∞ εß≡αßε≥ΩΦ ε°ΦßεΩ Γ√ß≡α±√Γασ≥ ±εεß∙σφΦσ εß ε°ΦßΩσ Γ εΩφε ß≡α≤τσ≡α. ╥σΩ±≥ε∞ ±εεß∙σφΦ   Γδ σ≥±  message ±ΓεΘ±≥Γε call εß·σΩ≥α. ┼±δΦ ε°ΦßΩα ∩≡εΦ±⌡εΣΦ≥ ∩≡Φ α±Φφ⌡≡εφφε∞ Γ√τεΓσ, ≥ε Γ√ ∞εµσ≥σ σσ ∩σ≡σ⌡Γα≥Φ≥ⁿ, ε∩≡σΣσδ   error callback ⌠≤φΩ÷Φ■.

╧≡Φ α±Φφ⌡≡εφφε∞ Γ√τεΓσ ∩σ≡σΣασ≥σ ±±√δΩ≤ φα error callback ⌠≤φΩ÷Φ■ Γ Ωα≈σ±≥Γσ ∩α≡α∞σ≥≡α. ╥. Ω. ∩σ≡σΣασ≥±  ≤Ωατα≥σδⁿ φα ⌠≤φΩ÷Φ■, ≥ε ∩≡Φ ≥αΩε∞ Γ√τεΓσ ∞εµφε Φ±∩εδⁿτεΓα≥ⁿ ≥εδⁿΩε JavaScript. ╧≡Φ∞σ≡√ ± Φ±∩εδⁿτεΓαφΦσ∞ εß·σΩ≥α ±±√δα■∙σπε±  φα ±σ≡Γσ≡φ≤■ ±≥≡αφΦ÷≤ Φ ßστ:

callObject = ASPObject.methodName(p1, p2[,...], 
callbackFunction,
    errorCallbackFunction, context)

callobject = RSExecute(url, methodName, p1, p2[,...],
 callbackFunction,
    errorCallbackFunction, context)

╧≡Φ ±Φφ⌡≡εφφε∞ Φ α±Φφ⌡≡εφφε∞ Γ√τεΓσ Γ√ ∞εµσ≥σ ∩εδ≤≈α≥ⁿ Φφ⌠ε≡∞α÷Φ■ ε ∩≡εΦ±⌡εΣ ∙Φ⌡ ε°ΦßΩα⌡ ≈σ≡στ ±ΓεΘ±≥Γα call εß·σΩ≥α. ┼±δΦ Γ√ ε∩≡σΣσδ σ≥σ error callback ⌠≤φΩ÷Φ■, ≥ε call εß·σΩ≥ ∩σ≡σΣασ≥±  Γ Ωα≈σ±≥Γσ ∩α≡α∞σ≥≡α ΩαΩ Φ Γ ±δ≤≈ασ callback ⌠≤φΩ÷ΦΦ. ╧εδστφ√σ ±ΓεΘ±≥Γα call εß·σΩ≥α ∩≡Φ εß≡αßε≥Ωσ ε°Φßε≈φ√⌡ ±Φ≥≤α÷ΦΘ:

╤δσΣ≤■∙ΦΘ ∩≡Φ∞σ≡ Σσ∞εφ±≥≡Φ≡≤σ≥ ≡αßε≥≤ error callback ⌠≤φΩ÷ΦΦ Γ ΩδΦσφ≥±Ωε∞ ±Ω≡Φ∩≥σ.

<script language = "JavaScript" for = "btnSquare" 
event = "onclick">
rsMath = RSGetASPObject("rsadd.asp");
number1 = txt1.value;
context = "squaring";
co = rsMath.square(number1,showResults,showErrors,
context);

function showErrors(co){
msg = "The raw data returned by the remote method
 call is "
msg = msg + co.data
alert(msg);
msg = "The following error occurred during the "
msg = msg + co.context
msg = msg + " remote scripting call:\n"
msg = msg + co.message;
alert(msg);
}
</script>

╧≡ΦδεµσφΦσ └: ╤ΓεΘ±≥Γα Φ ∞σ≥εΣ√ call εß·σΩ≥α

╧≡Φ Γ√τεΓσ ±σ≡Γσ≡φεπε ∞σ≥εΣα ΓετΓ≡α∙ασ≥±  φσ return-τφα≈σφΦσ Γ√τ√Γασ∞επε ∞σ≥εΣα, α εß·σΩ≥, ±εΣσ≡µα∙ΦΘ ≡στ≤δⁿ≥α≥ ≡αßε≥√ ∞σ≥εΣα ∩δ■± Σε∩εδφΦ≥σδⁿφ≤■ ±≥α≥≤±φ≤■ Φφ⌠ε≡∞α÷Φ■. ┬ ±δσΣ≤■∙σΘ ≥αßδΦ÷√ ±ΓσΣσφ√ ±ΓεΘ±≥Γα Φ ∞σ≥εΣ√ call εß·σΩ≥α.

╤ΓεΘ±≥Γε ╬∩Φ±αφΦσ
id ╙φΦΩαδⁿφ√Θ ΦΣσφ≥Φ⌠ΦΩα≥ε≡ call εß·σΩ≥α, ±ετΣασ≥±  ∩≡Φ ∩σ≡Γε∞ Γ√τεΓσ.
return_value return-τφα≈σφΦσ Γ√τ√Γασ∞επε ∞σ≥εΣα.
data ═σεß≡αßε≥αφφ√σ ±≥α≥≤±φ√σ Σαφφ√σ Γ XML ⌠ε≡∞α≥σ.
status ╥σΩ≤∙σσ ±ε±≥ε φΦσ Γ√τεΓα, Γετ∞εµφ√σ τφα≈σφΦ :
  • -1 û ε°ΦßΩα
  • 0 û ∞σ≥εΣ ταΓσ≡°Φδ ≡αßε≥≤
  • 1 û ∞σ≥εΣ φσ ταΓσ≡°Φδ ≡αßε≥≤
message ╥σΩ±≥εΓα  Φφ⌠ε≡∞α÷Φ  ε Γ√τεΓσ. ┼±δΦ Γ√τεΓ ≤±∩σ°φ√Θ, ≥ε message ±εΣσ≡µΦ≥ "Complete". ┼±δΦ ∩≡εΦτε°δα ε°ΦßΩα, message ±εΣσ≡µΦ≥ ±εεß∙σφΦσ εß ε°ΦßΩσ.
callback ╚∞  callback ⌠≤φΩ÷ΦΦ Σδ  Σαφφεπε Γ√τεΓα.
error_callback ╚∞  error callback ⌠≤φΩ÷ΦΦ Σδ  Σαφφεπε Γ√τεΓα.
context ╩εφ≥σΩ±≥φ√Θ ∩α≡α∞σ≥≡, ∩σ≡σΣασ≥±  ∩≡Φ Γ√τεΓσ Φ ßστ Φτ∞σφσφΦΘ ΓετΓ≡α∙ασ≥±  ± call εß·σΩ≥ε∞.
╠σ≥εΣ ╬∩Φ±αφΦσ
wait ╬±≥αφαΓδΦΓασ≥ ≡αßε≥≤ ΩδΦσφ≥±Ωεπε ±Ω≡Φ∩≥α Σε ταΓσ≡°σφΦ  ≡αßε≥√ α±Φφ⌡≡εφφε Γ√τΓαφφεπε ±σ≡Γσ≡φεπε ∞σ≥εΣα.
cancel ╬±≥αφαΓδΦΓασ≥ ≡αßε≥≤ α±Φφ⌡≡εφφε Γ√τΓαφφεπε ∞σ≥εΣα.

 

Ω επδαΓδσφΦ■