打造顛覆你想象中的高效能,輕量級的webform架構---無重新整理提交後台並返回參數(第五天)

來源:互聯網
上載者:User

標籤:高效能   sel   執行個體   bsp   輸出   完成   ajax   response   var   

        問題5:  使用aspx 頁面執行後台方法,總是要重新整理整個頁面?我想提交後台不重新整理頁面,同時返回參數 執行前台的js 指令碼,就是說類似於像 ajax 的效果一樣,那我們該怎麼做呢?

       大家是否已經看了前面的文章,下面我們來總結一下如何去實現?

       首先我們要知道 ,我們的aspx 頁面 預設情況下 執行後台 是通過 form1 表單提交到背景,而我們前面 <from>  標籤中,有一個屬性叫做  target的屬性,系統預設情況下是“-self”,就是說返回的資料是指向自己的,表示整個頁面會重新整理,我們想不 重新整理整個頁面,我們只需要 在 介面上 放置一個隱藏的 <iframe>標籤,同時將id=‘from1’ 的表單的屬性target 指向 <iframe> 的name 的值,然後我們就會發現 ,aspx頁面 執行後台後,頁面沒有重新整理了。

      上面是對我前一堂課程的總結!!!下面我們來看一下 C# 後台如何傳輸參數到前台,同時讓前台能夠接收到後台傳出的參數????

       其實寫過 一般處理常式的人都知道,如何傳遞參數的,使用 Response.Write(“我是好人”);這樣會將 這個值輸入到  iframe 中,但是iframe中我們只需要我們傳入的值,但是我們看到 iframe 中 除了 傳入 我們需要的值之外還有很多我們不要的元素,所以我們要將這些不要的清除掉,怎麼清除掉呢?

       

我們可以這樣寫

   

 Response.ClearContent();            Response.Write("我是好人");           Response.End();

  大功告成,這樣前台 iframe 只顯示我們輸出的值了。

      現在出現了另外一個問題,我們的前台如何 判斷  ,後台c# 代碼執行完成後再執行  前台的js方法?

    我曾經想過用 用 settimeout 去迴圈判斷 iframe 中內容的值,雖然可以實現,但是容易陷入死迴圈,而且還有時間差,效果遠不如 ajax 。

    如果不能這麼做,我們可以從另外一個方面來入手,我們知道 iframe 是有一個load 的事件,我們這裡必須使用 jquery的 事件綁定的方法,使用前要先去除綁定,然後在重新綁定,不然的話  iframe上就會不停的綁定不同的 load事件,代碼執行個體如下:       

$("#_NofreshIframe").unbind("load");
$("#_NofreshIframe").bind("load", function () {   alert(1)  });

    我們來測試一下,確實能在後台代碼執行完成後能執行iframe的  load事件。

   那我們需要擷取iframe 中的值就很容易了,這裡我們這樣擷取iframe中的值, 

    var result = $(window.frames["_NofreshIframe"].document).text();

  這個方法能相容所有的瀏覽器的所有版本,以及iframe 跨域的問題。

 

 

其實說了這麼多,講了這麼多廢話,其實離我們的最終目的快要達到,就是要  打造一個 類似於 ajax 的方法,能夠傳輸到後台,並返回參數,我們需要做的就是對前面的這些東西進行 類似於  ajax  post 提交 的 封裝,以及對 後期產生問題的展望!!!!

 

        

 

 

 

  

 

打造顛覆你想象中的高效能,輕量級的webform架構---無重新整理提交後台並返回參數(第五天)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.