2012-12-16 73 views

回答

0

Ajax request一般是由做那種事JavaScript或jQuery的。

我不認爲這是可能做到這一點直接,因爲JavaScript的運行客戶端,而不是服務器端。

jQuery無法運行數據庫查詢(沒有雙關語意圖)。

+0

*「...因爲JavaScript運行客戶端,而不是服務器端..」*廢話。服務器上的JavaScript相當常見(NodeJS,SilkJS,Rhino,RingoJS,...)。 *另一方面,jQuery *幾乎全部用於客戶端。 –

9

jQuery被設計爲在瀏覽器環境中運行  —所以這是一個帶DOM的環境,支持JavaScript(顯然)等等。

爲了取回MS SQL Server數據,您需要訪問數據庫驅動程序,並且對服務器的訪問。瀏覽器很少有這兩件事,即使他們這樣做了,你通常不希望兩個人直接交談。

取而代之的是,通常的方式是讓基於瀏覽器的代碼與中間層服務器(一個Web服務器,因爲瀏覽器擅長和他們交談)進行交談,然後訪問數據庫。有幾個方面的原因:

  1. 它給你一個地方(在瀏覽器和數據庫之間的服務器)應用安全,把關,節流,監控等

  2. 它可以防止將數據庫代碼和結構展示給最終用戶(因爲任何想閱讀它的人都可以閱讀基於瀏覽器的JavaScript代碼)。

  3. 充分利用瀏覽器環境中訪問數據庫驅動程序是棘手的,需要非標準化的東西像IE的ActiveXObject中不存在的,即使在瀏覽器上的所有瀏覽器和觸發安全警告他們目前英寸

你怎麼有瀏覽器與服務器通話,這取決於你想做什麼變化,但現代的做法是使用AJAX,它代表(有點apocryphally)異步JavaScript和XML。 (現在人們比XML更多地使用它; JSON是更常見的數據表示法。)

因此,例如,您可能希望在點擊按鈕時填寫一些HTML。在您的基於瀏覽器的代碼,你會勾按鈕點擊:

$("#theButton").click(handleButtonClick); 

你最好有一個按鈕,向服務器發送一個請求。如果請求是冪等的(你總是得到相同的數據),你發送一個GET;否則,您發送POST:

function handleButtonClick() { 
    $.ajax({ 
     url:  "/path/to/server/resource", 
     type: "GET", 
     data: {articleId: 27}, 
     success: function(data) { 
      /* ...use the data to fill in some HTML elements... */ 
     }, 
     error: function() { 
      /* ...show an error... */ 
     } 
    }); 
} 

在服務器上,在/path/to/server/resource頁面會做驗證請求應履行必要的工作,連接到數據庫,查詢(或更新)的信息,格式化回覆到客戶端。

顯然,上面是一個非常,非常,非常凝聚帳戶你如何做到這一點,但希望它設置舞臺,給你一個想法,尋找到去下一個步驟是什麼。

相關問題