Javascript - ASP Etkileşimi
Asp, Javascript January 23rd, 2008->
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><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
-
<script language=”javascript” src=”hava.asp”></script>
satırını
-
<script language=”javascript” src=”http://www.havadurumu.com/hava.asp”></script>
olarak değiştirmemiz yetecektir.



























February 8th, 2008 Saat 11:35 am
bari mdb yi de koysaydınızda deneseydik biz :s
genede teşekkürler