AJAX學習之Atlas架構之定時無重新整理讀取資料庫

來源:互聯網
上載者:User
ajax|定時|資料|資料庫|重新整理|無重新整理 通過上次那個Hello,World的基本ATLAS程式的聯絡,對於ATLAS我們可能只有一大概的印象.那麼我們有要開始實現我們的目標:定時無重新整理的隨機顯示資料庫中的一條資料和按下按鈕來顯示資料庫中的一條資料.
方式:ASP.NET的用戶端控制項.(我們知道ASP.NET是用伺服器端控制項的.用戶端的控制項就是以前普通的HTML表單控制項.對於伺服器端的實現我們在下次解決.其實我們以前的實現方式都是基於用戶端的實現方式如果要與ASP.NET結合我們就要換成另外一種方式,當然ATLAS是提供了伺服器端控制項以實現伺服器端的AJAX應用.)
通過上次的那篇文章,我們知道其實ATLAS的AJAX實現方式是用一個用戶端的JS代碼加一個伺服器端的Web Service(我覺的MICROSOFT就是會替自己考慮,建立一個ATLAS應用可以順便利用下Web Service )
現在開始我們代碼的書寫.
頁面代碼: 
 程式碼

<form id="formrefresh" runat="server">
<div>
<div id="EngCnb"><div id="FamousDivb" class="AlDivb"><a href = "http://www.flysblog.com" target="_blank">天涯路遠</a> --- 君在天涯,天涯在我心。 -----傾力打造 </div></div>

<div id="EngCn"><div id="FamousDiv" class="AlDiv">名人名言正在載入...</div></div>
<script type="text/javascript">
window.setTimeout("StartFamous()",1000);
</script>
<div><div id="Div1"><div id="Div2" class="AlDivb"> 
<input id="txtFamous" style="width: 500px" type="text" />
   
<input id="btnGet" type="button" value="擷取名言" onclick = "DoSearch()"/></div></div>

</div>
</div>
</form>



部分頁面的JS代碼:

 程式碼

function StartFamous()
{
DoSearchTimer();
 window.setInterval("DoSearchTimer()",EngCTime*1000);

}
function DoSearchTimer()
{
Samples.AspNet.getFamousService.getFamous(OnRequestCompleteTimer);
}

function OnRequestCompleteTimer(result)
{
ChangeFamous(result);
}

function DoSearch()
{
//var SrchElem = document.getElementById("SearchKey");
Samples.AspNet.getFamousService.getFamous(OnRequestComplete);
}

function OnRequestComplete(result)
{
document.formrefresh.txtFamous.value = result;
}



照例我們建立一個Web Service代碼如下

 程式碼

using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data;
using System.Data.OleDb;

namespace Samples.AspNet
{
/// <summary>
/// HelloWorldService 的摘要說明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class getFamousService : System.Web.Services.WebService
{

public getFamousService()
{

//如果使用設計的組件,請取消注釋以下行 
//InitializeComponent(); 
}

[WebMethod]
public string getFamous()
{
//string inputString = Server.HtmlEncode(query);
//if (!String.IsNullOrEmpty(inputString))
//{
// return String.Format("Hello, you queried for {0}. The "
// + "current time is {1}", inputString, DateTime.Now);
//}
//else
//{
// return "The query string was null or empty";
//}
string db = Server.MapPath("famousDB/famous.mdb");
int uidd = 1;
OleDbDataReader rd = null;
OleDbConnection conn = null;
try
{
System.Random r = new Random();
uidd = r.Next(1,69);
string sql = "select Top 1 * from famous where id="+ uidd.ToString();
conn = new OleDbConnection(@"Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + db + ";");
conn.Open();
OleDbCommand cmd = new OleDbCommand(sql, conn);
rd = cmd.ExecuteReader();
if(rd.HasRows)
{
rd.Read();
return rd[1].ToString();// Response.Write(@"<querys><Famous><![CDATA[" + rd[1].ToString() + @"]]></Famous></querys>");
} else {
return "null";//Response.Write(@"<querys><Famous><![CDATA[null]]></Famous></querys>");
}
}
finally
{
// always call Close when done reading.
rd.Close();
// always call Close when done reading.
conn.Close();
}

}

}
}




其實整個過程跟上次的那個Hello,world的ATLAS程式一模一樣的。就是把Web Service中執行的函數換個內容.
到此你可以運行你建立的程式或者運行我提供的代碼程式.你會發現實現的內容跟用自己建立的小型架構的效果一模一樣.

總結
這個ATLAS的用戶端應用,感覺MICROSOFT沒有象AJAX.NET PRO的AJAX架構一樣,實現用戶端的JS代碼直接調用伺服器端的函數代碼,而是通過了中介Web Service.雖然AJAX.NET PRO讓我非常的鬱悶。但是它能直接調用伺服器端的方法這點倒是很好(雖然我自己沒有調試通那個代碼,只實現了簡單的字元返回,沒有實現資料庫的讀取).下一個應用我們將用伺服器端的控制項來實現這個應用. 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.