2009-08-31 59 views
1

我在asp.net頁面上有一個簡單的javascript函數,它將一些數據寫入頁面上的隱藏字段。要獲取這些數據,表單必須發送回服務器。問題是提交表單會導致重新加載頁面,我不希望我的客戶端經歷不必要的回發。所以我認爲它可以使用AJAX - 是否有可能只有我的網頁的一部分將執行JavaScript和不可見地發送數據到服務器,而無需重新加載整個頁面?如果是這樣,你能解釋一下如何或至少提供任何資料來源,我可以找到細節?無形地將數據發送回服務器 - 不生成回傳

回答

4

是的,這是可能的,你基本上會在你的JavaScript函數中執行ajax請求,而不必重新加載頁面或任何東西。這是標準的Ajax實踐。

我想看看Jquery,它是一個JavaScript庫,它包裝了大量的javascript功能,並簡化了專門爲ajax編寫代碼。

查詢http://docs.jquery.com/Ajax僅供參考。

+3

添加到這樣的回答:我建議使用一個ashx的(webhandler)文件來處理Ajax調用。這裏是我使用jQuery和ashx文件找到的教程:http://www.mikesdotnetting.com/Article/104/Many-ways-to-communicate-with-your-database-using-jQuery-AJAX-and-ASP 。淨 – 2009-08-31 21:53:41

2

你在正確的軌道上,這確實是用ajax完成的。既然你使用術語回發,我假設你使用的是asp.net webforms。有一個相應的庫asp.net AJAX,你可以找到更多關於http://www.asp.net/ajax/你就可以開始學習如何在http://www.asp.net/learn/ajax/tutorial-01-cs.aspx

使用它,就像Web表單是http的抽象等是asp.net阿賈克斯阿賈克斯。雖然它確實使一些事情變得更容易,但它也可以使作者無法想象的其他事情變得更加困難,然後他們需要做到。對於更高級的消息,你可能需要檢查jQuery的http://jquery.com/,它與asp.net MVC很好地結合在一起。在公共領域也爲jQuery提供更多的信息,樣本和庫,然後爲asp.net ajax分配更多的信息,樣本和庫。但是,如果你已經有了一個webforms代碼庫,asp.net ajax應該能夠讓你最快地找到你。

2

如果您使用的是ASP.NET,那麼開始使用ajax非常容易 - Ajax控件可以添加到VS 2005中,並且控件隨VS2008一起提供。

查看http://www.asp.net/ajax/瞭解如何在ASP.NET中使用Ajax的說明/視頻。最簡單的設置是在標記中將UpdatePanel放在內容中,並且它將自動對UpdatePanel中的任何內容進行異步更新,而不用回傳。

0

使用JavaScript庫。你可以實現你想要使用的東西,例如,原型(http://prototypejs.org)庫用盡可能少的編碼,因爲這:

var serialized = $("formId").serialize(true); 
new Ajax.Request(
    "your/url/here", 
    method: "post", 
    parameters: serialized, 
    onSuccess: function(response) {alert("data sent");}, 
    onFailure: function(response) { 
    var msg = "Server error on AJAX request: "; 
    msg += response.status; 
    msg += " " + response.statusText; 
    alert(msg); 
    }, 
    onException: function(response, stacktrace) { 
    var msg = "Exception in AJAX callback\n"; 
    for (var i in stacktrace) { 
     msg += i + " = " + stacktrace[i] + "\n"; 
    } 
    alert(msg); 
    } 
); 
相關問題