Sayfalar

28 Ağustos 2010 Cumartesi

Javascript - ASP Etkileşimi

Javascript kullanırken "src=xxx.js" parametresini kullanarak birden fazla sayfada kullandığımız javascript fonksiyonlarını tek bir dosyada toplayabiliriz. Ancak bu statik bir çözümdür ve birçok sayfada dinamik bilgilere ihtiyaç duyarız.

Bu yüzden işin içine Asp ' yi katarak database de dahil olmak üzere tüm server-side teknolojileri kullanarak çok daha esnek javascript uygulamaları yazabiliriz.

Örneğin havadurumu bilgilerini içeren bir siteniz var (havadurumu.com) ve başka sitelerin de bu bilgileri kullanabilmesini istiyorsunuz. Bunun için bir web servisi yaratabilir ve xml aracılığıyla bilgi alışverişi yapabilirsiniz. Ancak bu tip basit uygulamalarda Asp & Javascript kullanarak oldukça kolay çözümler üretmek daha mantıklıdır.

Örneğin bir müşteriniz sizin hava durumu bilgilerinizin belli bir ücret karşılığında kendi sitesinde de olmasını istiyor. Bu işi müşterinizin sayfasında hiçbir asp kodu olmadan ( connection string' i vermek istemezsiniz :))) halledebilirsiniz. Yani Asp destekleyen bir sunucuda olması gerekmez. Çünkü müşterinin sayfasındaki kod tamamen client-side çalışır.

Örneğimizde hava durumu bilgileri "hava.mdb" dosyasında durmaktadır. "Hava.asp" dosyası db' den havadurumu bilgilerini çekip response.write ile javascript ile kullanabileceğimiz client-side değişkenlere atar. "index.html" sayfasında da bu bilgileri document.write metoduyla sayfada istediğimiz yere yazdırabiliriz.


<%@ LANGUAGE="VBSCRIPT"%>

<%

dim constr

constr="provider=microsoft.jet.oledb.4.0;data source=" &
server.MapPath("hava.mdb")

dim con

dim rst

dim sql

dim ist1,ist2,ank1,ank2



set con=server.createobject("adodb.connection")

set rst=server.createobject("adodb.recordset")

con.open constr

sql="select top
2 derece1,derece2 from hava where datevalue(tarih)='"& datevalue(date())
&"' order by sira"

rst.open sql,con

if not rst.eof then

ist1=rst.Fields("derece1").Value

ist2=rst.Fields("derece2").Value

rst.MoveNext

if not rst.EOF then

ank1=rst.Fields("derece1").Value

ank2=rst.Fields("derece2").Value

end if

end if

set rst=nothing

set con=nothing

%>

<!--

var istHava="<%=ist1%>" + "/" + "<%=ist2%>";

var ankHava="<%=ank1%>" + "/" + "<%=ank2%>";

//-->

index.html

<html>

<body>

<head>

<script language="javascript" src="hava.asp"></script>

</head>

<body>

HAVA DURUMU<br><br>

İstanbul : <script language="javascript">document.write(istHava);</script>

<br>

Ankara : <script language="javascript">document.write(ankHava);</script>

<br>

</body>

</html>


Gördüğünüz gibi hiç asp kodu olmamasına rağmen html sayfamızdaki havadurumu bilgileri dinamik olarak gelmektedir.

Bu örnek aynı klasörde olan "hava.asp" dosyasının çağırmaktadır. Başka bir siteden bu bilgileri almak için



satırını



olarak değiştirmemiz yetecektir.

Hiç yorum yok:

Yorum Gönder

Bing'ı Seviyoruz. :)
Google'ı Seviyoruz. :)