W3C Olay Nesneleri – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları
W3C Olay Nesneleri
Artık olay işleme teorisini bildiğinize göre (ve bir çok yeni tarayıcıda ve umarız gelecek tarayıcılarda kısmen desteğe sahipsiniz), kararlaştırılan standardı ihlal edenlere bakmanın ve onlarla nasıl başa çıkacağınızı öğrenmenin zamanı geldi.
Bunlardan biri, yaşı ve hem tarayıcı hem de işletim sistemi dosya yöneticisinde oynaması gereken rol düşünüldüğünde aslında anlaşılabilir olan MSIE 6’dır. MSIE’nin kendi olay modeli vardır ve standart yöntemlerin eşdeğerleri farklı şekilde adlandırılır ve bazen farklı davranır.
addEventListener() yerine MSIE, AttachEvent(); MSIE, her dinleyiciye bir olay nesnesi iletmek yerine, window.event’te bir genel olay nesnesi tutar. Bir geliştirici, olay eklemeye gelince, farklılıkları ortadan kaldıran addEvent() adlı taşınabilir bir işlev buldu.
İşlev, öğenin kendisi olan addEventListener() işlevinden bir parametre daha kullanır. addEventListener()’in desteklenip desteklenmediğini test eder ve olayı W3C uyumlu bir şekilde ekleyebildiğinde basitçe true değerini döndürür.
Aksi takdirde, AttachEvent()’in desteklenip desteklenmediğini kontrol eder (etkili bir şekilde MSIE kullanıldığı anlamına gelir) ve olayı bu şekilde eklemeye çalışır. AttachEvent() öğesinin olay için “on” ön ekine ihtiyacı olduğuna dikkat edin. Mac’teki MSIE gibi ne addEventListener() ne de AttachEvent()’i desteklemeyen tarayıcılar için işlev, DOM-1 özelliğini işleve yönlendirir. Bu, Mac’te MSIE’de bu öğeye eklenmiş diğer olayların üzerine etkili bir şekilde yazar, ancak en azından çalışır.
MSIE global bir olay kullandığından, dinleyicilerinize gönderilen olay nesnesine güvenemezsiniz, ancak etkinleştirilen öğeyi almak için farklı bir işlev yazmanız gerekir.
Özellikleri W3C olay nesnesinin özelliklerinden biraz farklı olduğundan, konular daha da karışır:
• Internet Explorer’da hedef srcElement ile değiştirilir.
• düğmesi farklı değerler döndürür. W3C modelinde 0 sol düğme, 1 orta ve 2 sağ düğmedir; ancak MSIE, sol düğme için 1, sağ için 2 ve orta için 4 döndürür. Ayrıca, sol ve sağ düğmelere birlikte basıldığında 3 ve üç düğmenin tümü için 7 değerini döndürür.
Safari’de kötü bir hata (veya özellik – hiçbir zaman emin olunmaz) vardır: Bir bağlantıya tıklarsanız, bağlantıyı değil, bağlantıda bulunan metin düğümünü hedef olarak gönderir. Çözüm, öğenin düğüm adının gerçekten bir bağlantı olup olmadığını kontrol etmektir.
Bu yardımcı yöntemlerin kullanılması, bir istisna dışında, olayları göze batmadan ve tarayıcılar arasında işlemenize izin vermelidir:
Safari, önlemeDefault() yöntemini anlar ancak yapması gerekeni uygulamaz. Bu nedenle, bir bağlantıya bir işleyici eklerseniz ve dinleyici yönteminde iptalClick() öğesini çağırırsanız, bağlantı yine de izlenir.
Safari için bunu aşmanın yolu, bağlantının izlenmesini durduran eski onevent sözdizimi aracılığıyla başka bir kukla işlev eklemektir. Bu düzeltmeyi şimdi çalışırken göreceksiniz. Çöken başlık örneğini tekrar ele alalım ve DOM-2 uyumlu yöntemleri ve özellikleri çapraz tarayıcı yardımcılarıyla değiştirelim.
Tıklanabilir başlıklar artık tüm modern tarayıcılarda çalışıyor; ancak, betiği biraz düzene sokabileceğiniz anlaşılıyor. Şu anda örnekler çok fazla döngüye giriyor, bu gerçekten gerekli değil. Liste öğelerinin içindeki tüm paragrafları tek tek gizlemek yerine, liste öğesine bir sınıf eklemek ve CSS motorunun tüm paragrafları gizlemesine izin vermek çok daha kolaydır.
Sonraki değişiklik toggleNews() yöntemindedir. Burada döngüyü, geçerli sınıfın liste öğesine uygulanıp uygulanmadığını kontrol eden basit bir if koşuluyla değiştirirsiniz ve durum buysa hide’yi akımla, geçerli değilse de hide ile değiştirir. Bu, liste öğesi içindeki tüm paragrafları gösterir veya gizler.
flash programında olaylar (event)
Flash programında sınıflar
HTML günün tarihi
Script kodlama
Java script komutları
JavaScript köşeli parantez
JavaScript Anlık saat
JavaScript fonksiyonlar
Optimize Etmek
Neyin bu şekilde optimize edilebileceğini belirlemek için kendi kodunuzu analiz etmek, o anın sıcağında neşeyle kodlamak ve kendi iyiliği için çok karmaşık bir şey yaratmak çok cazip olsa da, asla bitmemelidir.
Geri adım atmak, çözmek istediğiniz sorunu analiz etmek ve halihazırda mevcut olanı yeniden değerlendirmek, bazen sadece sürmekten çok daha faydalıdır. Bu durumda, optimizasyon, alt öğeler arasında döngü yapmak ve bunları tek tek gizlemek yerine, öğelerin gizlenmesini CSS’de kademeli olarak bırakmaktır.
Oluşturduğunuz koda bir kez daha baktığınızda, aşağıdaki fikirleri her zaman aklınızda bulundurmanızda fayda var:
• İç içe döngülerden kaçınan herhangi bir fikir iyi bir fikirdir.
• Ana nesnenin özellikleri, çeşitli yöntemlerle ilgili bilgileri depolamak için iyi bir yerdir; örneğin, site gezintisinde hangi öğe etkindir.
• Kendinizi tekrar tekrar kod parçalarını tekrarlarken bulursanız, bu görevi yerine getiren yeni bir yöntem oluşturun; gelecekte kodu değiştirmeniz gerekirse, yalnızca tek bir yerde değiştirmeniz gerekir.
• Düğüm ağacında çok fazla dolaşmayın. Bir çok öğenin başka bir öğe hakkında bilgi sahibi olması gerekiyorsa, onu bir kez bulun ve bir özellikte saklayın. contentSection gibi bir şey elm.parentNode.parentNode.nextSibling’den çok daha kısa olduğundan, bu kodu çok kısaltacaktır.
• Uzun bir if ve else deyimleri listesi, bir switch/case bloğu olarak çok daha kolay işlenebilir.
• Safari stopPropagation() hack gibi gelecekte bir şeylerin değişmesi muhtemelse, bunu kendi yöntemine koymak iyi bir fikirdir. Kodu bir daha gördüğünüzde ve görünüşte işe yaramaz bu yöntemi gördüğünüzde, neler olduğunu hatırlayacaksınız.
• HTML’ye çok fazla güvenmeyin. Her zaman değişmesi gereken ilk şeydir (özellikle ilgili bir CMS olduğunda).
Sayfa Yükleme Sorunu ve Çözümleri
Geliştiriciler, CSS’yi yoğun bir şekilde kullanmaya başladıklarında, kısa süre sonra bazı can sıkıcı tarayıcı hatalarıyla karşılaştılar. Bunlardan biri, FOUC olarak da bilinen, biçimlendirilmemiş içeriğin flaşıydı.
Bu efekt, uygulamadan önce sayfayı kısa bir süre stil sayfası olmadan gösterir. Şimdi JavaScript ile geliştirilmiş sayfalarda aynı sorunla karşı karşıyayız. Daraltılmış haber öğelerinin örneğini yüklerseniz, kısa bir an için tüm haberlerin genişletilmiş olduğunu göreceksiniz.
Bu kısa an, belgenin ve resimler ve üçüncü taraf içeriği gibi tüm bağımlılıklarının yüklemeyi tamamlaması için gereken süredir. Bu, uzun zamandır bir tasarımcı gözüyle betik meraklılarını rahatsız ediyor; onload olayı, sayfa ve görüntüler gibi tüm ortamlar yüklendiğinde tetiklendi ve bir çok akıllı DOM betikçisi kafalarını bir araya getirip deneyene kadar bu böyleydi.
Dean Edwards (son derece teknik ama dahiyane çözümler söz konusu olduğunda hatırlanması gereken bir isim), sayfa tüm içerik öğelerini yüklemeyi bitirmeden önce kod çalıştırmanıza izin veren ve böylece etrafta zıplamadan daha pürüzsüz görünen bir arayüz sağlayan bir komut dosyası buldu.
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)