ajaxツールキットを使用せずにASP.net Webフォームでajaxを実行できますか? (例のリンクを投稿してください)
7 に答える
はい...この投稿の私の例を参照してください
これは ASP.NET ajax よりもはるかに優れたパフォーマンスを発揮しますが、コーディングに時間がかかります。
もちろん。ajax という用語が造られる前から、人々は何年もの間 ajax を行ってきました。Jquery は、ページを更新せずにサーバーにコールバックするために使用できる人気のあるライブラリです。
はい!
ASP.NET AJAX の代替手段は無数にあります。それらのほとんどは実際にも優れています。私のプロジェクトをチェックしてみてください。あなたのニーズに合わせたRa-Ajax :)
人気のあるツールは次のとおりです: AjaxPro。
他の人が指摘したように、XmlHttpRequest オブジェクトと JavaScript を使用して、すべてを自分でコーディングできます。しかし、アプリが非常に洗練された手法を使用する場合、自分でコードを書くのは非常に面倒です。ツールはより強力になり、使いやすくなりました。
ASP.Net Ajax には 2 つの要素があります。1 つは、Visual Studio 2008 に含まれ、Visual Studio 2005 に追加できる Ajax 拡張機能です。これは、「ツールキット」よりもはるかに多くの機能に使用できます。完全なポストバックを実行せずに、部分的なページの更新やデータの取得など。もう 1 つは、別のダウンロードである Ajax Control Toolkit です。「ツールキット」には、主に派手なコントロール、特に DHTML 効果 (表示、非表示、アニメーションの模倣) を備えたコントロールが含まれています。
ああ絶対に。
UpdatePanel とそれを取り巻くすべての道具の代わりに、ASP.NET フォームで使用できるjQueryなどのライブラリがあります。
私が以前働いていた場所では、AJAX という言葉が登場するずっと前から AJAX を行っていました。これは、私たちのものが IE でしか動作しなかった時代のことです :-)
ASP.NET サーバー コントロールを使用している ASP.NET フォームで行う必要があることの 1 つは、JavaScript からコントロールを参照するときにサーバーがコントロール用に生成する正しいクライアント ID を使用することです。したがって、「telephoneNumber」などの ID を持つラベルがある場合は、それを <%=telephone.ClientID %> として参照する必要があります。例えば
$("#<%=telephoneNumber.ClientID %>").attr("disabled", "disabled");
jQuery などのライブラリを使用して、ASP.NET Web サービスを呼び出すことはできますが、WCF と JSON のシリアル化を調査した方がよいでしょう。
ASP.NET ajax ビットのすべてを破棄する必要はありません。スクリプト サービスを使用して Web サービスを呼び出します。JSON に置き換えるまでは道のりの半分です。
確かにできます!私が .NET 1.1 (ASP.Net Ajax がリリースされる前) で行ったことは、へのHttpHandler
呼び出しをリッスンする を定義しajax.aspx
、適切なメソッドを実行して、結果を吐き出すことでした。Prototype ライブラリを使用して Ajax 呼び出しを行いましたが、他のライブラリを使用することも、手動で行うこともできます。
私は記憶に頼っていますが、これが私が使用したコードです(.NET 2.0の場合ですが、アイデアはわかります):
// client-side js:
var foo = new Ajax.Request('ajax.aspx',
{
method:'get',
parameters: { method: 'GetFive' },
onSuccess: function(transport){
var response = transport.responseText || "no response text";
alert("Success! \n\n" + response);
},
onFailure: function(){ alert('Something went wrong...') }
});
// web.config:
<httpHandlers>
<!-- pre existing handlers go here -->
<add verb="GET" path="ajax.aspx" type="Fully.Qualified.Name.AjaxHandler, AssemblyName" validate="false" />
</httpHandlers>
// AjaxHandler.cs
public class AjaxHandler : IHttpHandler {
internal delegate object AjaxFunction();
private Dictionary<string, AjaxFunction> functions;
public bool IsReusable {
get { return true; }
}
public void ProcessRequest(HttpContext context) {
this.functions = new Dicionary<string, AjaxFunction>();
this.functions.Add("GetFive", delegate() {
return 5;
});
string functionName = context.Request["method"];
AjaxFunction func = this.functions[functionName];
if (func != null) {
object val = func();
context.Response.Write(val);
}
}
}
[重要な注意: 上記はテストされておらず、実際には適切に設計されておらず、コンパイルすらできない可能性がありますが、正しい考えが得られるはずです。]
Ajax とは、ユーザーが Web ページを見ている間に JavaScript を使用して、サーバーに戻って別のものを取得することを意味します。次に、DOM である JavaScript を使用して、フェッチした内容でページを更新します。
XMLHttpRequest オブジェクトは優れていますが、それ以前でも、非表示の IFRAME を使用して同じことを行うことができました....
開始するために必要なすべての JavaScript コードは次のとおりです。
function GetXmlHttpObject()
{
var objXMLHttp=null
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
// do something with xmlHttp.responseText
}
}
function SendAsyncHttpRequest()
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
return
}
var url = "http://YOUR_URL"
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}