Arkadaşlar gerçekten önemli bir konu. Size bu konuyla ilgili başımdan geçen bir olayı anlatıyım.

Geçen senelerde Ajax ile baya yoğun bir sayfa üzerinde çalışıyordum. Sayfada birçok update panel, webcontroller, vs. ler vardı. Ancak bir süreden sonra farkettimki sayfanın çalışma hızı gözle görülür şekilde düştü. Sebebini araştırdığımda update panellerden kaynaklandığını gördüm. Update panele bir alternatif ararken ScriptManager in bir özelliğini keşfettim. Scriptmanager , deyim yerindeyse kendi ajaxınızı yazmanıza izin veriyor. Bu yöntemle gerçekten veri trafiği neredeyse %80 azaldı diyebilirim. Sayfa tamamen Html nesneleri ile kurulmuş oluyor ve sadece javascript fonksiyonları ile çalışıyor.

Size tavsiyem yoğun bir sayfa yapıyorsanız , mutlaka bu yöntemi seçmelisiniz. Tabiki javascript bilginizinde iyi olması gerekiyor.

İsterseniz yöntemi anlatıyım size;

Öncelikle sayfanıza bir tane script manager koyun. Scriptmanager in EnablePageMethods özelliğinin true olması grekiyor.

yani şu şekilde bir tanım yapılması gerekiyor.

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True" />

Şimdi code behind tarafına geçip System.Web.Services.WebMethod  attribute una sahip static ve string deger döndüren zamanver isminde bir metod yazalım. Javascipt ile ulaşabilmemiz için böyle yazmamız gerekiyor.

[System.Web.Services.WebMethod]

public static string zamanver(string bilgi)

{

return bilgi+":"+DateTime.Now.ToString();

}

Aspx sayfamıza bir tane html buton koyalım. bununla yazacağımız javascipt fonksiyonunu çağıracağız.

javascript fonsiyonumuzda şu şekilde olacak

<script type="text/javascript">

function jszamanver()

{

PageMethods.zamanver(
"Şuanki zaman",jszamanversonuc);

}

 

function jszamanversonuc(sonuc)

{

alert(sonuc);

}

</script>

Gördüğünüz gibi 1 tane C# metodu çağırmak için 2 tane javascript fonksiyonu yazıyoruz. Bunlardan ilki c# metodunu çalıştırıp sonucu 2. ye aktarıyor. 2. de gelen veriyi işliyor.

Evet işimiz bitti. şimdi herhangi html nesnesi ile 1. fonksiyonu çağırmamız yeterli. örn:

<input id="Button1" onclick="jszamanver()" type="button" value="button" />

 Eğer anlayabildiyseniz gerisi sizin hayal gücünüze ve javascript bilginize kalmış. 

 Umarım anlatabilmişimdir.
örnek uygulama: 

AJAXEnabledWebSite1.rar (163,46 kb)

Herkese kolay gelsin
Mustafa KOÇER
mkocer@dotnetkosesi.com 

 

4 kişi tarafından 4.3 olarak değerlendirildi

  • Currently 4,25/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5