Javascript Yazılım Kuralları (JS)

22 Aralık 2007

JavaScript

Javascript, web sayfalarını daha etkileşimli yapmak için kullanılan bir programlama dilidir. Formların içeriklerini denetlemek ve değiştirmek, sayfada görüntülenen resimleri değiştirmek için kullanılır. Yeni pencere açarken ya da dinamik olarak sayfa içeriğini değiştirirken de kullanabilirsiniz.

CSS ile kullanarak Dinamik HTML bile yapabilirsiniz. Bu koşulda Web sayfanızın bazı bölümlerini gizler, gösterir ya da sayfa içinde gezdirebilirsiniz.

Verilen bir zamanda tarayıcıda görüntülenen sayfaların javascript yazılımları işleme girer. Sayfayı görüntülemeye son verilirse, yazılım da bitmiş olur. Bu kuralın dışında kalan tek şey "cookie" olur. "Cookie" birçok sayfa tarafından kullanılabilir (Sayfalar kapanmış bile olsa).

Daha ileri gitmeden önce Javascript ile Java arasında en ufak bir bağlantı bile olmadığı bilinmelidir. Doğruyu söylemek gerekirse Javascript başlangıçta "LiveWire" kısa adıyla anılırdı. Netscape tarafından yaratıldığında LiveScript dendi. Aslında yeniden adlandırıldığında Netscape tarafından ECMAScript adıyla kullanıldı. Çünkü standartlaştırılması için Netscape yazılım kurallarını ECMA'ya aktarmıştı.

Javascript, istemci (client) tarafında çalışan, yorumlanan, nesnel tabanlı, yüksek düzey kodlama dilidir. Halbuki Java istemci tarafında çalışan, derlenmiş, nesnel tabanlı yüksek düzey bir dildir.


İstemci tarafında olmak
Tarayıcının çalıştığı bilgisayara aktarılan programlar o bilgisayarda çalışmaya başlar. Buna karşıt olan yöntem sunucu tarafında olmaktır. Sunucu tarafında çalışan programların yalnız sonuçları tarayıcının bulunduğu bilgisayara iletilir. Örnek yazılımlar PHP, ASP ya da JSP olarak adlandırılabilir.

Yorumlanmış
Yazılan program kaynak kod olarak istemcinin bilgisayarına açık ve görünür biçimde taşınır. Daha sonra kullanılırken makina koduna dönüştürülür. Derlenen programlar önce makina koduna dönüştürülür sonra taşınmaya başlar. Bu yüzden programın gerçek kaynak kodu bilinmez. Java gerçekte iki kez yarım derlemeden geçer. İlk derlendiğinde "byte code" (ikili kod) elde edilir. Daha sonra taşındığı bilgisayarda kullanılırken makina koduna dönüşür. Yorumlayıcılar dil konusunda o kadar titiz olmazlar. Hiç kullanılmayan bir kod içinde yazım hatası olsa bile programın çalışması bozulmaz ve sorun çıkartmaz (ta ki o kullanılmayan bozuk kod kullanılmaya başlayınca sorun başlamış olur).

Kodlama
Bunu tanımlamak biraz daha zordur. Kodlama daha çok yinelenen işleri yapmak için kullanılır. Tümüyle bir programlama dili olsalar da, karmaşık programların derinliklerine inmezler (Örneğin bellek yönetimi ya da iş parçası -thread- gibi...). Onlar daha çok bu işleri yapmak için bir başka program kullanırlar ve en temel biçimde onların ne yapacağını bildirirler. Büyük bir olasılıkla kendi kullanıcı arayüzlerini kullanmazlar ama başka programların arayüzlerine dayanarak kullanıcı iletişimini sürdürürler. Bu tanımlar Javascript için oldukça doğrudur. Tarayıcının ekrana neler yerleştirmesi gerektiği Javascript ile bildirilmez. Yalnız belgede değişiklik yapılacağı bildirilir. Tarayıcı artık bellek yönetimini ve iş parçalarının çalışmasını düzenler, Javascript yazılımını kendi yapması gereken işlerle özgür bırakır.

Yüksek Düzey
Konuşma diline en yakın yazılım diline denir. Karşıtı assembly kodlamasıdır ki doğrudan makina diline çevirilir.

Nesnel Tabanlı
Bu konuda Nesnel Tabanlı Programlama başlığında ayrıntılı bilgi vardır.

Javascript Nasıl Yapılandırılır

Kodlamanın temel bölümleri değişkenler, değişmezler ve nesnelerdir. Bir değişken yazı parçasını, sayıyı, mantıksal doğru ya da yanlış tanımını ya da bir nesneyi saklayan kelimedir. Değişken tarafından gösterilen değer; Gerçek bir sayı, Yazı parçası, Mantıksal değer olabilir. Bir nesne üst düzey değişken altında toplanmış bir çok değişkene denir. Üst düzey değişken belgenin tamamı da olabilir.

Bir kodlamanın ikinci en önemli parçası işlemdir. İşlemler değerleri değişkenlere atar ya da nasıl test edileceğini belirtir.

Kodlama diğer önemli parçası denetim yapısıdır. Eğer denetim yapısındaki koşul geçerliyse kodlama çalıştırılacaktır.

İşlevler denetim yapısını, işlemleri ve atamaları bir araya getirir ve gerek olduğunda bu yazılım parçalarını çalıştırır.

Bir kodlamanın en belirgin parçası yaptığı iştir. Bazıları işlemlerle yapılır ama çoğunluğunda yöntemler kullanılır. Yöntemler form gönderme, sayfaya yazma ve mesaj görüntüleme gibi özel işlevlerdir.

Olaylar işlemleri yakalamak/algılamak için kullanılır. Fareyi hareket ettirmek ya da tıklamak, bir tuşa basmak ya da formu temizlemek gibi kullanıcının yarattığı olaylardır. Tetiklendiğinde olaylar bu işlevlerin çalışmasını sağlar.

Son olarak çok açık olmasa da gönderme yapılırken kullanılır. Burada nesnelerin içine yazılacakları belirtilir. Hatta nesnelerin kendisini yazmak ve denetlemek yapılan işlerdendir.

Örneğin bir kullanıcı, form sonundaki gönderme düğmesini tıklamış olsun. Bazı bilgi alanlarının doldurulmuş olup olmadığını denetlemek istediğinde işlev olaya bağlanır. Bu formda gönderme düğmesi tıklanınca ilgili işlev çalıştırılır.

Bu işlevde denetim yapısı vardır. Karşılaştırma işlemi bilgi alanının boş olup olmadığını saptar. Eğer bilgi varsa işlev, formu göndermek için kullanılır.

Javascript Bağları

Javascript kodlamaları her tarayıcıda değişik algılanır ve yorumlanır. Yazdığınız bir kodlama tarayıcının bir sürümünde çalışmayabilir. Bu tarayıcı artık kullanılmazmış gibi görünse de hala bazı donanımlarda Internet erişimi altında kullanılıyor olabilir. Yazılan bir kodlamanın bir tarayıcıda çalışmaması ya da web sayfasının doğru görüntülenmemesi sizi rahatsız edebilir. Aşağıdaki bağlarda daha önce kullanılmış tarayıcıların hepsinde Javascript nasıl davranır hangi kodlama nasıl yazılmalıdır araştırılmıştır. Çok büyük bir emek ürünü olan bu çalışmaların burada Türkçelerini sunuyoruz. O çalışmaları okuyup anlamayanlar için...

Çeşitli Javascript yazılımını anlatan siteler ve buradaki belgelerde yararlanılan kaynaklar aşağıdaki listede verilmiştir:

  • w3schools Javascript
  • document.body and doctype
  • Javascript Tutorial
  • DOM (Document Object Model) Reference
  • Scrolling Layer Content
  • Eric's weblog
  • Javascript Codes
  • Mouse wheel programming in JavaScript
  • Read an HTML page from the server in a variable
  • JavaScript Tutorial
  • Javascript Codes