﻿
{"id":398,"date":"2012-04-11T16:14:55","date_gmt":"2012-04-11T16:14:55","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=398"},"modified":"2012-04-19T21:13:00","modified_gmt":"2012-04-19T21:13:00","slug":"asp-net-response-nesnesi","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/asp-net-response-nesnesi\/","title":{"rendered":"Asp.NET Response Nesnesi"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>\u00d6ncelikle &#8220;Response&#8221; ne demektir ona bakal\u0131m.&#8221;Response&#8221; kar\u015f\u0131l\u0131k demektir.Bir istekte bulunulup, o iste\u011fin kar\u015f\u0131l\u0131\u011f\u0131nda bir cevap alabilmemizi sa\u011flar.Mesela, ekrana bir yaz\u0131 yazma iste\u011finde bulundu\u011fumda, bu iste\u011fin kar\u015f\u0131l\u0131\u011f\u0131n\u0131 Response k\u00fct\u00fcphanesi verecektir.Ya da bir linke y\u00f6nlendirme iste\u011fi yaparken, bu iste\u011fin kar\u015f\u0131l\u0131\u011f\u0131n\u0131 yine Response verecektir.\u015eimdi gelin bu nesnenin property ve metodlar\u0131n\u0131 inceleyelim.<br \/>\n<!--more--><br \/>\n<strong>Write() Metodu<\/strong><br \/>\nAsp.NET kullan\u0131c\u0131lar\u0131n\u0131n en a\u015fina oldu\u011fu Response metodudur.Metod ald\u0131\u011f\u0131 de\u011feri direkt olarak ekrana yazd\u0131r\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nResponse.Write(&quot;Merhaba&quot;);\r\n<\/pre>\n<p>Ekrana &#8220;Merhaba&#8221; yaz\u0131s\u0131n\u0131 yazacakt\u0131r.<br \/>\n<strong>WriteFile() Metodu<\/strong><br \/>\nBu metod, HTML uzant\u0131l\u0131 dosyalar\u0131n kaynak kodlar\u0131n\u0131 al\u0131p, g\u00f6stermekte kullan\u0131l\u0131r.Asp.NET ve PHP gibi programlama kodlar\u0131n\u0131n bulundu\u011fu sayfalar\u0131n sadece HTML kodlar\u0131n\u0131 al\u0131p yay\u0131nlar.Kodlar\u0131 ekrana aktar\u0131rken Asp.NET veya PHP komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmaz.<br \/>\n\u00d6ncelikle Calisma.html ad\u0131nda bir sayfa d\u00fczenliyorum.Bu HTML sayfas\u0131n\u0131n kodlar\u0131 a\u015fa\u011f\u0131daki gibidir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n&lt;p&gt;HTML SAYFASI&lt;\/p&gt;\r\n&lt;p&gt;Nisan 11, 2012&lt;\/p&gt;\r\n&lt;form id=&quot;form1&quot; name=&quot;form1&quot; method=&quot;post&quot; action=&quot;&quot;&gt;\r\n  &lt;p&gt;\r\n    &lt;label&gt;\r\n      &lt;input type=&quot;radio&quot; name=&quot;RadioGroup1&quot; value=&quot;radyo&quot; id=&quot;RadioGroup1_0&quot; \/&gt;\r\n      Radyo&lt;\/label&gt;\r\n    &lt;br \/&gt;\r\n    &lt;label&gt;\r\n      &lt;input type=&quot;radio&quot; name=&quot;RadioGroup1&quot; value=&quot;radyo&quot; id=&quot;RadioGroup1_1&quot; \/&gt;\r\n      Radyo&lt;\/label&gt;\r\n    &lt;br \/&gt;\r\n  &lt;\/p&gt;\r\n&lt;\/form&gt;\r\n&lt;p&gt;&amp;nbsp;&lt;\/p&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/pre>\n<p>\u015eimdide WriteFile() metoduna, Calisma.html sayfas\u0131n\u0131n yerini g\u00f6sterelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nResponse.WriteFile(&quot;C:\\\\Users\\\\Gen\u00e7ay\\\\Desktop\\\\Calisma.html&quot;);\r\n<\/pre>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/04\/1.png\"><img loading=\"lazy\" decoding=\"async\" title=\"Calisma\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/04\/1.png\" alt=\"\" width=\"160\" height=\"143\" \/><\/a><br \/>\nResimde g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, HTML sayfas\u0131n\u0131n kodunu WriteFile() metodu kople okuyup, ekrana aktar\u0131yor.<br \/>\n<strong>Redirect() Metodu<\/strong><br \/>\nBu metod sayesinde ba\u015fka bir sayfaya y\u00f6nlendirme i\u015flemini yapabiliriz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nResponse.Redirect(&quot;http:\/\/www.google.com&quot;);\r\n<\/pre>\n<p>Bu kod \u00e7al\u0131\u015ft\u0131\u011f\u0131 anda Google&#8217;a y\u00f6nlendirilirsiniz.<\/p>\n<hr \/>\n<p>\u015eimdi ise, <strong>Flush()<\/strong>,<strong>Clear()<\/strong> ve <strong>End()<\/strong> metodlar\u0131 ve Buffer \u00f6zelli\u011finden bahsedece\u011fim.\u00d6ncelikle bu metod ve \u00f6zelliklerin neden kullan\u0131ld\u0131\u011f\u0131n\u0131 a\u00e7\u0131klayay\u0131m.<\/p>\n<p>Bir i\u015flemi yaparken, tampon(buffer) haf\u0131za kullan\u0131l\u0131yorsa e\u011fer, i\u015flemin sonucunda ekrana yazd\u0131ralacak veriler tapon haf\u0131zaya g\u00f6nderilir ve b\u00fct\u00fcn veriler orada toparland\u0131ktan sonra browser\u0131m\u0131zda g\u00f6sterilir.E\u011fer tampon haf\u0131za kullanmassak,Asp.NET sayfas\u0131nda yap\u0131lan i\u015flemler direkt olarak browserda yay\u0131nlanmaya ba\u015flayacakt\u0131r.Hangi sebeple kullanmam\u0131z gerekti\u011fini sorarsan\u0131z e\u011fer, h\u0131z kazanmak i\u00e7in kullan\u0131r\u0131z.<\/p>\n<p>E\u011fer tampon haf\u0131zay\u0131 kulland\u0131\u011f\u0131m\u0131z\u0131 varsayarsak arkaplandaki i\u015fleyi\u015fi anlatmak istiyorum.Asp.NET sayfas\u0131ndaki bir i\u015flem sonucu olu\u015fan \u00e7\u0131kt\u0131lar tampon(buffer) haf\u0131zaya g\u00f6nderilir.\u0130\u015flem sonucu olu\u015facak kodlar tamamland\u0131\u011f\u0131nda, bir nevi Buffer haf\u0131zam\u0131z doldu\u011funda burada toplanan veriler bir anda Browser\u0131m\u0131zda yay\u0131nlan\u0131r.<\/p>\n<p>E\u011fer tampon haf\u0131zay\u0131 kullanmazsak, Asp.NET sayfas\u0131ndaki i\u015flem sonucu olu\u015fan \u00e7\u0131kt\u0131lar, direkt olarak Browsera g\u00f6nderiliyor.<\/p>\n<p>Anlad\u0131\u011f\u0131n\u0131z kadar\u0131yla Buffer haf\u0131za Asp.NET sayfas\u0131yla Browser aras\u0131nda bir arac\u0131l\u0131k g\u00f6revi g\u00f6r\u00fcyor.<\/p>\n<p>\u00d6ncelikle <strong>Buffer<\/strong> \u00f6zelli\u011fine de\u011finelim.Geriye bool tipinden de\u011fer d\u00f6nd\u00fcren bu \u00f6zellik varsay\u0131lan olarak false d\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nResponse.Buffer = true;\r\n<\/pre>\n<p>Yukar\u0131daki gibi Buffer \u00f6zelli\u011fini true yaparsak e\u011fer, tampon belle\u011fi aktif etmi\u015f oluruz.Bu komuttan sonraki b\u00fct\u00fcn Response ifadelerinin hepsi tampon bellekte saklanacak ve o tampon bellek dolduktan sonra browser\u0131m\u0131zda veriler g\u00f6z\u00fckecektir.Yani a\u015fa\u011f\u0131daki kodlar\u0131 incelerseniz e\u011fer,<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        Response.Write(&quot;1&quot;);\r\n        Response.Buffer = true;\r\n        Response.Write(&quot;2&quot;);\r\n<\/pre>\n<p>ekrana yaz\u0131lacak &#8220;1&#8221; rakam\u0131 tampon bellek kullan\u0131lmadan yaz\u0131lacakt\u0131r.&#8221;2&#8243; rakam\u0131 ekrana yaz\u0131lmadan \u00f6nce tampon bellek \u00f6zelli\u011fi a\u00e7\u0131ld\u0131\u011f\u0131ndan dolay\u0131, \u00f6nce tampon bellekte tutulup ard\u0131ndan browsera g\u00f6nderilecektir.<\/p>\n<p>\u015eimdide <strong>Flush()<\/strong> metodundan bahsetmemiz gerekirse, bu metodu kullanabilmemiz i\u00e7in, Buffer \u00f6zelli\u011finin true yap\u0131lmas\u0131 gerekir.<br \/>\nBu metod sayesinde Buffer(tampon) belle\u011fimizde bulunan verileri taray\u0131c\u0131m\u0131za h\u0131zl\u0131 bir bi\u00e7imde g\u00f6nderebiliriz.<\/p>\n<p>\u015eimdi Buffer ve Flush() elemanlar\u0131n\u0131 kullan\u0131p kullanmama aras\u0131ndaki fark\u0131 g\u00f6stermek i\u00e7in a\u015fa\u011f\u0131daki kodlar\u0131 inceleyiniz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        for (int i = 0; i &lt; 500000; i++)\r\n        {\r\n            Response.Write(&quot;Merhaba&lt;br&gt;&quot;);\r\n        }\r\n<\/pre>\n<p>Yukar\u0131daki kodlar\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z zaman, ekranda binlerce &#8220;Merhaba&#8221; yaz\u0131s\u0131n\u0131 alt alta g\u00f6receksiniz.Hatta kiminin bilgisayar\u0131 \u00e7oktan tak\u0131lm\u0131\u015f olacak.Sayfa bir m\u00fcddet y\u00fcklenme a\u015famas\u0131nda olacak.\u015eimdide tampon bellek kullanarak ayn\u0131 i\u015flemleri yapal\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        Response.Buffer = true;\r\n        Response.Flush();\r\n        for (int i = 0; i &lt; 500000; i++)\r\n        {\r\n            Response.Write(&quot;Merhaba&lt;br&gt;&quot;);\r\n        }\r\n<\/pre>\n<p>Yukar\u0131daki kodlar\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda bir ka\u00e7 saniye bo\u015f ekran g\u00f6z\u00fckecektir.\u0130\u015fte bu arada tampona verileri al\u0131yor.Bir anda binlerce &#8220;Merhaba&#8221; yaz\u0131s\u0131 kar\u015f\u0131n\u0131za \u00e7\u0131kacakt\u0131r.<\/p>\n<p>Sayfay\u0131 yenileme durumunda tampon bellekte veriler duruyorsa, Asp.NET sayfas\u0131 rahats\u0131z edilmeden veriler Buffer bellekten \u00e7ekilecektir.<\/p>\n<p><strong>End() Metodu<\/strong><br \/>\nBu metodu kullan\u0131rsak e\u011fer, bundan sonra sonu\u00e7 beklenen i\u015flemleri kapatm\u0131\u015f oluruz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        Response.End();\r\n        Response.Write(&quot;DENEME&quot;);\r\n<\/pre>\n<p>End() metodu kullan\u0131ld\u0131\u011f\u0131ndan dolay\u0131 &#8220;DENEME&#8221; yaz\u0131s\u0131n\u0131 YAZMAYACAKTIR.<br \/>\n<strong>Clear() Metodu<\/strong><br \/>\nTampon belle\u011fe ald\u0131\u011f\u0131m\u0131z t\u00fcm bilgileri silecektir.<br \/>\n<strong>ContentEncoding \u00d6zelli\u011fi<\/strong><br \/>\nBu \u00f6zellik sayesinde sayfan\u0131n yaz\u0131 karakterlerini d\u00fczenleyebiliriz.\u00d6rnek olarak;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        Response.ContentEncoding = Encoding.Unicode;\r\n<\/pre>\n<p><strong>ExpiresAbsolute \u00d6zelli\u011fi<\/strong><br \/>\nBu \u00f6zellik sayesinde istedi\u011fimiz tarihte tampon belle\u011fi ba\u015flatabiliriz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nResponse.ExpiresAbsolute = DateTime.Now;\r\n<\/pre>\n<p><strong>Expires \u00d6zelli\u011fi<\/strong><br \/>\nBu \u00f6zellik sayesinde istedi\u011fimiz tarihte tampon belle\u011fi kapatabiliriz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nResponse.Expires = DateTime.Now.Day;\r\n<\/pre>\n<p><strong>TransmitFile() Metodu<\/strong><br \/>\nWriteFile() metodu gibi .html gibi uzant\u0131l\u0131 dosyalar\u0131n \u00e7\u0131kt\u0131s\u0131n\u0131 ekrana yazd\u0131r\u0131yor.Tek fark\u0131 i\u00e7inde Asp.NET programlamas\u0131 olan .aspx dosyalar\u0131n\u0131da \u00e7al\u0131\u015ft\u0131rabiliyor.<\/p>\n<p>Response nesnemizin en kullan\u0131\u015fl\u0131 \u00f6zelliklerine de\u011finmi\u015f olduk.Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere..<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar..<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>\u00d6ncelikle &#8220;Response&#8221; ne demektir ona bakal\u0131m.&#8221;Response&#8221; kar\u015f\u0131l\u0131k demektir.Bir istekte bulunulup, o iste\u011fin kar\u015f\u0131l\u0131\u011f\u0131nda bir cevap alabilmemizi sa\u011flar.Mesela, ekrana bir yaz\u0131 yazma iste\u011finde bulundu\u011fumda, bu iste\u011fin kar\u015f\u0131l\u0131\u011f\u0131n\u0131 Response k\u00fct\u00fcphanesi verecektir.Ya da bir linke y\u00f6nlendirme iste\u011fi&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[195],"class_list":["post-398","post","type-post","status-publish","format-standard","hentry","category-asp-net","tag-response"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=398"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/398\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=398"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=398"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}