Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

Asp.NET Response Nesnesi

Öncelikle “Response” ne demektir ona bakalım.”Response” karşılık demektir.Bir istekte bulunulup, o isteğin karşılığında bir cevap alabilmemizi sağlar.Mesela, ekrana bir yazı yazma isteğinde bulunduğumda, bu isteğin karşılığını Response kütüphanesi verecektir.Ya da bir linke yönlendirme isteği yaparken, bu isteğin karşılığını yine Response verecektir.Şimdi gelin bu nesnenin property ve metodlarını inceleyelim.

Write() Metodu
Asp.NET kullanıcılarının en aşina olduğu Response metodudur.Metod aldığı değeri direkt olarak ekrana yazdırır.

Response.Write("Merhaba");

Ekrana “Merhaba” yazısını yazacaktır.
WriteFile() Metodu
Bu metod, HTML uzantılı dosyaların kaynak kodlarını alıp, göstermekte kullanılır.Asp.NET ve PHP gibi programlama kodlarının bulunduğu sayfaların sadece HTML kodlarını alıp yayınlar.Kodları ekrana aktarırken Asp.NET veya PHP komutlarını çalıştırmaz.
Öncelikle Calisma.html adında bir sayfa düzenliyorum.Bu HTML sayfasının kodları aşağıdaki gibidir.

<html>
<head>
</head>
<body>
<p>HTML SAYFASI</p>
<p>Nisan 11, 2012</p>
<form id="form1" name="form1" method="post" action="">
  <p>
    <label>
      <input type="radio" name="RadioGroup1" value="radyo" id="RadioGroup1_0" />
      Radyo</label>
    <br />
    <label>
      <input type="radio" name="RadioGroup1" value="radyo" id="RadioGroup1_1" />
      Radyo</label>
    <br />
  </p>
</form>
<p>&nbsp;</p>
</body>
</html>

Şimdide WriteFile() metoduna, Calisma.html sayfasının yerini gösterelim.

Response.WriteFile("C:\\Users\\Gençay\\Desktop\\Calisma.html");


Resimde gördüğünüz gibi, HTML sayfasının kodunu WriteFile() metodu kople okuyup, ekrana aktarıyor.
Redirect() Metodu
Bu metod sayesinde başka bir sayfaya yönlendirme işlemini yapabiliriz.

Response.Redirect("http://www.google.com");

Bu kod çalıştığı anda Google’a yönlendirilirsiniz.


Şimdi ise, Flush(),Clear() ve End() metodları ve Buffer özelliğinden bahsedeceğim.Öncelikle bu metod ve özelliklerin neden kullanıldığını açıklayayım.

Bir işlemi yaparken, tampon(buffer) hafıza kullanılıyorsa eğer, işlemin sonucunda ekrana yazdıralacak veriler tapon hafızaya gönderilir ve bütün veriler orada toparlandıktan sonra browserımızda gösterilir.Eğer tampon hafıza kullanmassak,Asp.NET sayfasında yapılan işlemler direkt olarak browserda yayınlanmaya başlayacaktır.Hangi sebeple kullanmamız gerektiğini sorarsanız eğer, hız kazanmak için kullanırız.

Eğer tampon hafızayı kullandığımızı varsayarsak arkaplandaki işleyişi anlatmak istiyorum.Asp.NET sayfasındaki bir işlem sonucu oluşan çıktılar tampon(buffer) hafızaya gönderilir.İşlem sonucu oluşacak kodlar tamamlandığında, bir nevi Buffer hafızamız dolduğunda burada toplanan veriler bir anda Browserımızda yayınlanır.

Eğer tampon hafızayı kullanmazsak, Asp.NET sayfasındaki işlem sonucu oluşan çıktılar, direkt olarak Browsera gönderiliyor.

Anladığınız kadarıyla Buffer hafıza Asp.NET sayfasıyla Browser arasında bir aracılık görevi görüyor.

Öncelikle Buffer özelliğine değinelim.Geriye bool tipinden değer döndüren bu özellik varsayılan olarak false dır.

Response.Buffer = true;

Yukarıdaki gibi Buffer özelliğini true yaparsak eğer, tampon belleği aktif etmiş oluruz.Bu komuttan sonraki bütün Response ifadelerinin hepsi tampon bellekte saklanacak ve o tampon bellek dolduktan sonra browserımızda veriler gözükecektir.Yani aşağıdaki kodları incelerseniz eğer,

        Response.Write("1");
        Response.Buffer = true;
        Response.Write("2");

ekrana yazılacak “1” rakamı tampon bellek kullanılmadan yazılacaktır.”2″ rakamı ekrana yazılmadan önce tampon bellek özelliği açıldığından dolayı, önce tampon bellekte tutulup ardından browsera gönderilecektir.

Şimdide Flush() metodundan bahsetmemiz gerekirse, bu metodu kullanabilmemiz için, Buffer özelliğinin true yapılması gerekir.
Bu metod sayesinde Buffer(tampon) belleğimizde bulunan verileri tarayıcımıza hızlı bir biçimde gönderebiliriz.

Şimdi Buffer ve Flush() elemanlarını kullanıp kullanmama arasındaki farkı göstermek için aşağıdaki kodları inceleyiniz.

        for (int i = 0; i < 500000; i++)
        {
            Response.Write("Merhaba<br>");
        }

Yukarıdaki kodları çalıştırdığınız zaman, ekranda binlerce “Merhaba” yazısını alt alta göreceksiniz.Hatta kiminin bilgisayarı çoktan takılmış olacak.Sayfa bir müddet yüklenme aşamasında olacak.Şimdide tampon bellek kullanarak aynı işlemleri yapalım.

        Response.Buffer = true;
        Response.Flush();
        for (int i = 0; i < 500000; i++)
        {
            Response.Write("Merhaba<br>");
        }

Yukarıdaki kodları çalıştırdığınızda bir kaç saniye boş ekran gözükecektir.İşte bu arada tampona verileri alıyor.Bir anda binlerce “Merhaba” yazısı karşınıza çıkacaktır.

Sayfayı yenileme durumunda tampon bellekte veriler duruyorsa, Asp.NET sayfası rahatsız edilmeden veriler Buffer bellekten çekilecektir.

End() Metodu
Bu metodu kullanırsak eğer, bundan sonra sonuç beklenen işlemleri kapatmış oluruz.

        Response.End();
        Response.Write("DENEME");

End() metodu kullanıldığından dolayı “DENEME” yazısını YAZMAYACAKTIR.
Clear() Metodu
Tampon belleğe aldığımız tüm bilgileri silecektir.
ContentEncoding Özelliği
Bu özellik sayesinde sayfanın yazı karakterlerini düzenleyebiliriz.Örnek olarak;

        Response.ContentEncoding = Encoding.Unicode;

ExpiresAbsolute Özelliği
Bu özellik sayesinde istediğimiz tarihte tampon belleği başlatabiliriz.

Response.ExpiresAbsolute = DateTime.Now;

Expires Özelliği
Bu özellik sayesinde istediğimiz tarihte tampon belleği kapatabiliriz.

Response.Expires = DateTime.Now.Day;

TransmitFile() Metodu
WriteFile() metodu gibi .html gibi uzantılı dosyaların çıktısını ekrana yazdırıyor.Tek farkı içinde Asp.NET programlaması olan .aspx dosyalarınıda çalıştırabiliyor.

Response nesnemizin en kullanışlı özelliklerine değinmiş olduk.Sonraki yazılarımda görüşmek üzere..
İyi çalışmalar..

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*