程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 實現asp.net只對個別控件實時訪問數據庫刷新數據

實現asp.net只對個別控件實時訪問數據庫刷新數據

編輯:.NET實例教程
問題: 在webform上有一個控件,這個控件最好是能夠實時的去訪問數據庫,一旦數據庫裡面有改動,便對客戶端提交數據,顯示最新的數據。
  
  分析:
   因為是要客戶端更新,所以必須要用到JS的前台時鐘功能,服務端變了,客戶端要刷新才能更新數據,如何能做到不刷新更新數據,或者假刷新頁面,即客戶端基本看不出的刷新。
  
  解決辦法:(有錯的地方還請大家更正,本人水平有限,謝謝了)
   主要有兩種解決方法:實時性的和輪詢性的
  
   實時:通過在數據庫中增加觸發器去觸發,然後在服務器中寫了一個文件,用做信號量。這種技術我覺得對這個問題來言過於復雜,所以就沒繼續研究,有興趣的朋友可以去MSDN上看,但確實能夠做到實時的更新數據,對即時的對話最有效。
  
   輪詢:1、采用XMLhttp無刷新方式。這類方式可以看下我前面轉的別人寫的文章,裡面有詳細介紹,但是我測試了後,發覺從服務器上獲取的是整個頁面的Html代碼,要從中得到你需要的控件內容,並且重置還是過於復雜,且效率不一定高。
   2、用Html的框架去完成,也就是我主要寫的方法,這個方法簡單易於實現,對只是動態顯示很小數據的情況我覺得非常好用。
  
   詳細介紹:在Html中需要更新的地方寫上<iframe src="../test/WebForm2.ASPx"></iframe> src就是要連接的頁面,然後把框架的大小和滾動條什麼的按照需要調整下。
   新建一個頁面WebForm2.ASPx,作為被框架的連接頁面,把需要實時更新的控件也放在這個頁面裡面,然後在其中的Page_Load事件裡面
  
   Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
   '在此處放置獲取數據庫更新的代碼,和控件關聯
   End Sub
  
   再在Html中加入<meta HTTP-EQUIV="Refresh" content="1" URL="/test/WebForm2.ASPx">
   表示間隔1秒自動刷新本頁面(你也可以根據實際情況,添加如window.setInterval(function,1000)等前台時鐘),這樣結果就完成了,在第一個頁面啟動後第二個頁面沒隔一段時間刷新,但是客戶端的感覺和沒刷新一樣的。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved