Mlliyet Milliyet Blog Milliyet Blog
 
Facebook Connect
Blog Kategorileri
 

18 Aralık '10

 
Kategori
Teknoloji
 

Chrome Kabusu

Chrome Kabusu
 

Google Chrome


Herkese merhaba

Enkaz devraldım!!

Evet ciddi bir enkaz... Geçtiğimiz 2 ay boyunca bir web sitesinin düzeltilmesiyle uğraşıyorum. Toplasanız 20-25 tabloyla tamamlanabilecek bir işi, 400'den fazla tablo, binlerce Stored Procedure ve onlarca fonksiyon yazarak rezil eden birkaç arkadaşın marifetlerini temizlemekle uğraşıyorum.

Marifet derken ciddiyim... Ajax'ı beğenmeyip, onu devre dışı bırakarak taklit eden Javascriptler mi istersiniz, sipariş tamamlama aşamasında 1 dakika boyunca çalışıp, kafasına göre sonuç dönen ya da yok bu sefer "canım istemiyor" diyerek sonuç dönmeyen Stored Procedure müsveddeleri mi... Ne ararsanız mevcut... Sadece sitenin anasayfası imajlar hariç 500 Kb yükleniyor... Düşünebiliyor musunuz? 500 Kb!! Tabii Ajax'ın performansından memnun kalmayıp kendi scriptlerini üretince... Vermişler sopayı :) Gel de düzelt...

Düzeltme baştan yaz diyeceksiniz ama... Sitenin işlevi çok fazla.. Üzerimde de reklam verip satışa başlamak için gün değil saat sayan bir kadro mevcut.. Öyle 2 ayda baştan yazılacak gibi değil... Mecburen önce siteyi işlevsel hale getirip satışa başlama, sonrasında da baştan aşağı yenileme kararı alındı...

Siteyi düzenlerken yaşadıklarım gerçekten Cem Yılmaz'a bir gösterilik malzeme çıkarır.. Zaman zaman bunları bu günlükte paylaşmaya çalışacağım...

Bugünse, beni çok şaşırtan bir gerçeği sizlerle paylaşmak istiyorum. Google Chrome...

Evde web tarayıcı olarak Google Chrome kullanıyorum... Hızlı, çakılmıyor ve kullanıcısını fazla üzmüyor... Bazı CSS yorumlamaları sayfaları eğri büğrü gösterse de genel olarak diğer tarayıcılara tercih ediyorum... Ama geçtiğimiz hafta içinde beni fazlasıyla üzdü.

Bir sayfa düşünün, dinamik. Sol tarafta alışveriş sepeti içeriği, sağ tarafta ise satışı yapan işletmenin ürünlerinin listesi. Ürün listesindeki ürüne tıklanıyor, bu tıklanma neticesinde ürün detaylarını gösteren bir forma ulaşıyorsunuz. Bu formu Ajax Toolkit içindeki ModalPopupExtender ile tasarladık. İçindeki kontrollerin hepsi dinamik olarak oluşuyor, çünkü her ürünün özellikleri ve seçilebilen opsiyonları değişik karakteristiğe sahip. Bazıları tekli seçim, bazıları çoklu seçim olabiliyor veya yapılan bir seçim, başka bir seçim kutusunun oluşmasını ve o kutunun içinin de seçilen opsiyonun olası değerleriyle dolmasını tetikleyebiliyor. Mesela bir ürünün kapaklı veya kapaksız olduğunu seçebiliyorsunuz. Eğer kapaklı isterseniz, bu kapağın rengini seçebilmesi için kullanıcıya bir combo box oluşturup içini kapak renkleriyle doldurmanız gerekebiliyor. Neyse hikaye uzun ve sıkıcı...

Yazılımı geliştirirken Firefox üzerinde çalışıyoruz, sonrasında bir test ekibi işlevsellik ve cross-browser testlerini tamamlıyor. Pazartesi günü itibarıyla sayfayı tamamlayıp test ekibine verdim. İlk testlerden gelen sonuç gayet iyiydi, birkaç ufak tefek hata haricinde sayfa çalışıyordu. Fakat cross-browser testleri başladığında ortalık birbirine girdi... Chrome ve Safari'de açılan modal panelin "Tamam" butonu çalışmıyordu! Daha doğrusu sadece 1 defa çalışıyor, ikinciye tıklandığında çalışmıyordu.. Ama Internet Explorer, Firefox ve Opera'da bir sorun yoktu.. Herhalde dedim, basit bir derttir... Öyle ya sonuçta bu browserlar ne kadar farklı yorumlayabilirler ki olayı? İşte Murphy Kuralları'nın devreye girdiği nokta bu oldu... Bunlar farklı tarayıcılar değil sanki farklı işletim sistemleri...

Anlamamız gereken ilk nokta şu : Chrome ve Safari'de, dinamik olarak oluşturduğunuz kontrollerin metinleri aynıysa, o sayfa çalışmayabilir. Çünkü sevgili Chrome aynı metin değerine sahip iki farklı kontrole aynı ID'yi atayıp dinamik olarak oluşturduğunuz sayfayı bir çöp yığını haline getirebiliyor! Şöyle örnekleyeyim : İki repeater'ınız ve repeater item'larında da Label kontrolleriniz olsun. A ve B Repeaterlarınındaki birer Label "Mustafa" metnini taşıyorsa, o sayfada ModalPopupExtender çalışmaz!

Hatayı nasıl mı aştım? Bir Repeater'daki her Label'in metin değerine " " -bildiğiniz boşluk- ekledim ve sürpriz... Sorun giderildi, ModalPopupExtender butonum artık çalışıyor! Gülsem mi ağlasam mı bilemiyorum...

Chrome ile ilgili çözemediğim iki konu daha var, çözdükten sonra onları da sizinle paylaşacağım...


Hatasız günler...

 
Toplam blog
: 6
: 1114
Kayıt tarihi
: 23.11.10
 
 

1970 Adapazarı doğumluyum..