RegisterStartupScript RegisterClientScriptBlock arasındaki fark nedir?

0

Asp.Net'de RegisterStartupScript ve  RegisterClientScriptBlock metodları arasındaki fark nedir?

RegisterStartupScript ve  RegisterClientScriptBlock hangi durumlarda nasıl kullanılmalı?

RegisterClientScriptBlock ve RegisterStartupScript metodları sunucu tarafında oluşturulan javascript  kodunu .aspx tarafa kaydediyor fakat aralarında ne gibi bir fark var?

alattin alattin (13139)
5 yıl önce sordu

Toplam 1 Cevap


0

 RegisterStartupScript ve RegisterClientScriptBlock arasındaki fark şöyle özetlenebilir:

RegisterStartupScript kullandığınızda,  javascript kodunuzu DOM içerisindeki son elementten sonra yerleştirecektir (Form etiketinin kapanışından hemen önce). Bu da, Jquery document.ready  gibi bir metod kullanmıyoranız, DOM içerisindeki elementler yükledikten sonra onlara javascript içerisinden erişebilmenize olanak sağlayacaktır.

 RegisterStartupScript çıktısı

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1"><title></title></head>
<body>
  <form name="form1" method="post" action="Default.aspx" id="form1">
<div>
</div>
<div>
  <span id="lblDisplayDate">Label</span><br />
  <input type="submit" name="btnPostback" value="Register Startup Script" id="btnPostback" />
  <br />
  <input type="submit" name="btnPostBack2" value="Register" id="btnPostBack2" />
</div>
<div> 
</div>
<!-- RegisterStartupScript javascript kodu bu alana yerleştirdi -->
<script language='javascript'>
var lbl = document.getElementById('lblDisplayDate');
lbl.style.color='red';
</script>
<!-- kodun bitişi -->
</form>

</body>
</html>

RegisterClientScriptBlock kullanırsanız, javascript kodunuz, Body> Form > Gizli ViewState etiketlerinden hemen konra konumlandırılacaktır.

Bu da DOM yüklenirken javascript kodunuzun ilk olarak çalıştırılacağı anlamına gelir. Yani sayfanın tamamı yüklenmeden javascript kodunuz çalışır.

RegisterClientScriptBlock ile scripti register ederseniz sonuç şu şekilde olacaktır:

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1"><title></title></head>
<body>
  <form name="form1" method="post" action="StartupScript.aspx" id="form1">
  <div>
  <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="someViewstategibberish" />
  </div>
<!-- RegisterClientScriptBlock kullanıldığında javascript kodunun konumlandırılacağı alan ->
<script language='javascript'>
var lbl = document.getElementById('lblDisplayDate');
// Error is thrown in the next line because lbl is null.
lbl.style.color='green';

Javascript içerisindeki kodlarınıza göre iki metoddan birini kullanabilirsiniz.

alattin alattin (13139)
5 yıl önce cevaplandı

üyelik gerektirir

Cevap yazabilmek için üye girişi yapmalısınız.

Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol