簡體   English   中英

在ASPX頁面中動態構建JavaScript的方法?

[英]Methods for dynamically building JavaScript within an ASPX page?

我有一個頁面,該頁面是通過另一個站點上的頁面的<script>標記引用的。 在腳本src中,我傳遞了我要構建腳本的表單(從db表中),以及動態創建的表單應該進入的div。 調用頁面如下所示:

<div id="FormContainer"></div>
<script type="text/JavaScript" src="http://www.example.com/GenerateForm.aspx?FormId=1&div=FormContainer"></script>

GenerateForm.aspx包含的代碼將讀取FormId和Div Id的QueryString參數,並輸出將構建表單的JavaScript。

我的問題是這個。 “輸出” JavaScript有哪些不同的方法? 一些JavaScript是靜態的,可以打包到一個外部.js文件中,我也有jQuery。 但是我應該在GenerateForm.aspx標記頁面上添加它嗎? 還是應該使用ScriptManager?

動態構建的JavaScript又如何呢? 目前,我只是使用Response.Write()進行概念驗證,但是我應該做其他事情嗎? 使用頁面上的Literal控件並設置其值? 使用ScriptManager? 還有嗎

我知道這是一個冗長的問題,所以在此先感謝!

如果要使用單獨的,引用的Javascript文件,則可能要使用ashx文件。 基本上,這只是一個通用處理程序,您將使用該處理程序直接將其寫入輸出流,而不必處理ASP.NET頁面生命周期。 如果您從“添加新項”對話框中向網站添加基本的通用處理程序(.ashx),則模板應該使用context.Response.Write()來確定方向,以便動態輸出Javascript。

如果您想輸出要在特定時間運行的Java腳本的各個行(例如在事件觸發后),則ScriptManager更有用。 然后,您可以執行ScriptManager.RegisterClientBlock(this, this.GetType(), "CodeBlock", "alert('Button clicked');", true); 例如,在單擊按鈕后顯示客戶端警報框。

靜態文件應該以這種方式處理-靜態。 如果您直接從script標記引用靜態腳本文件,則服務器可以處理緩存,並且不會引起不必要的處理。 a static script dynamically, you could, for example, create a literal that had the <script> tag inside it. 但是,如果需要動態靜態腳本,則可以例如創建一個內部帶有<script>標記的文字。 這樣,它將使用瀏覽器的靜態文件緩存版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM