Ajax Türkçe Karakter ve Cache Sorunu
October 17, 2008 tarihinde postalandı
Ajax | 3 Comments altında dosyalandı
Genel olarak ajax kullanarak yapılan data alış verişlerinde türkçe karakter problemi ile karşılaşırız. Bunun bir çok sebebi var. Nedenleri ve çözümleri hakkında çok yazılıp çizildi biliyorum fakat geçen gün karşılaştığım farklı bir sorundan bahsetmek istiyorum. Sorun ajax ile query string üzerinden gönderilen türkçe karakter.
query adında bir parametremiz ve bu parametrenin Çicek adında bir değeri olsun. Göndericeğimiz sayfanın ismide index.asp. Url olarak tam görünümü index.asp?query=Çiçek şeklinde olacaktır. Ajax üzerinden bu url gönderdiğimde Internet Explorer 6 – Internet Explorer 7 içinde query parametresinin değeri iek olarak görülüyordu. Firefox, Opera, Safari, Google Chrome içinde ise değer düzgün şekilde iletiliyordu. İlk olarak encoding ayarlarından şüphelendim. Database ve gönderdiğim sunucu sayfasının encoding ve karakter setini kontrol ettiğimde olması gerektiği gibi UTF-8 olduğunu gördüm.
Internette biraz araştırdıktan sonra sorunun javascript üzerinden gönderilen verinin encoding ayarları ile ilgili olduğunu anladım. Çözüm için javascript üzerinden gönderilen türkçe karakterlere sahip verinin sunucu sayfasına encoding yapılarak gönderilmesini sağlayan ve javascript içinde hazır bir fonksiyon olarak kullanılan encodeURIComponent() buldum. Göndericeğimiz değeri bu fonksiyon içinde gönderdiğimde problem ortadan kalkmıştı.
Örnek:
-
index.asp?query=<strong>encodeURIComponent("</strong><strong>Çiçek</strong><strong>")</strong>
Bu sorunu çözdükten sonra sayfaları incelemeye başladığımda Internet Explorer 6 – Internet Explorer 7 içinde sayfadaki verilerin cache lediğini farkettim. Yine biraz araştırdıktan sonra bu sorununda genel bir sorun olduğunu ve bunu düzeltmek içinde ufak bir trick kullanıldığını gördüm. Yapılan iş aslında çok basitti. Var olan url ile birlikte query srting üzerinden random bir sayı üretilerek gönderilen başka bir parametre göndermek sorunu çözüyordu. Bu iş kullandığım ve gayet güzel iş gören fonksiyonu aşağıda bulabilirsiniz.
-
function noCache(uri){
-
return uri.concat(.test(uri) & , noCache=, (new Date).getTime(), ., Math.random()1234567);
-
}
Ajax içinde göndericeğimiz URL’i bu fonksiyon içinde gönderdiğimizde artık Cache problemide ortadan kalkacaktır.
-
noCache(index.asp?query=encodeURIComponent("Çiçek"))
olarak gönderdiğimizde çıktı olarak karşımıza
-
index.asp?query=Çiçek&noCache=Random
Sayı şeklinde bir url verecektir. Kolay gelsin.
Css Hack & Filters Metodları
June 26, 2008 tarihinde postalandı
CSS | 2 Comments altında dosyalandı
Bir sayfanın arayüzünü hazırlarken mümkün olan tüm tarayıcılar içirisinde (Internet Exlorer, Firefox, Opera, Safari, Mozilla, Konqueror vs.) aynı şekilde çalışması için özen gösteririm. Fakat bunu başarmak her zaman için kolay olmaz. Her ne kadar web dünyasında standartları belirleyen kurum olan W3‘ün önerilere uygun olarak sayfamı kodlamaya çalışsamda XHTML, CSS ve Javascript kodlarımda tarayıcılar arasındaki yorum farklılıkları yüzünden karşılaştığım problemler gelecek saatleri stres içinde geçirmeme neden olur.
Bugün sizlerle CSS tabanlı hazırlanan sayfalardaki farklı browserlar içinde aynı sonucu almamızı sağlayacak ve daha esnek kurallar yazabileceğimiz CSS Hack yöntemlerini anlatan bir siteyi paylaşmak olacak. Favorilerimiz arasında eklenmesi gereken ve daha uzun zaman işimize yaracak bu sayfaya http://centricle.com/ref/css/filters/ adresi altından ulaşabilirsiniz. Siteyi açtığımızda karşımıza gelen tablo içinde en sol tarafta CSS dosyamız içinde belirleyeceğimiz kuralları ve ilerleyen kolonlarda ise farklı işletim sistemleri altında kullanabileğimiz tarayıcılar ve versiyonları altında belirtilen kuralların çalışıp çalışmadığını gösteren bir tabloya ulaşacaksınız. Kurallar üzerindeki linkler şu anda çalışmıyorlar fakat daha fazla bilgi edinmek isteyenler için sitenin altında ilişkili sayfalar üzerinden gidilerek daha fazla bilgiye sahip olunabilir. Bu liste sayesinde dilediğimiz tarayıcı için ona özel ve sadece o tarayıcının yorumlayabildiği kurallar belirleyebilecez ki buda bize sayfamız üzerinde daha fazla yetkiye sahip olmamızı sağlayacak.
Dilerim ileride birbiri ile daha uyumlu çalışan tarayıcılara sahip olur ve bu tarzda hack yöntemleri kullanmadan sayfalarımız rahatlıkla kodlama şansı buluruz.
svchost.exe yüksek cpu kullanım problemi ve çözüm yolları
June 12, 2008 tarihinde postalandı
Windows, Xp | 1 Yorum altında dosyalandı
Bugün şirket içinde karşılaştığım ve çözümünü bulduğum bir problemi sizlerle paylaşmak istedim. Windows açılışından bir kaç dakika sonrasında cpu oranını neredeyse %90 lara varan şekilde kullanmaya başlamış ve başka bir uygulamayı açmama izin vermiyordu. Bu problemin Windows Update Servisinin yeni bir güncelleme olup olmadığını tararken ortaya çıktığını gördüm. Problemin iki ayrı çözümü var. Bunlardan birincisi geçici ama en kısa yoldan çözüm olan Windows Update Servisinin durdurulması. Fakat bu servisi durduğumuzda artık windows güncellemelerini manuel olarak yapmak zorunda kalacaktık. Bu için ikinci ve kesin çözümü sizlerle paylaşıcam.
Öncelikle Windows Update Servisini durduruyoruz. Daha sonra aşağıda verdiğim linklerden microsoftun sunduğu hotfix dosyasını indiriyoruz.
İngilizce Windows XP için Hotfix dosyası
Türkçe Windows XP için Hotfix dosyası
Çekilen dosyayı kuruyor ve bilgisayarı tekrardan başlatıyoruz. Yeniden başlatılan bilgisayarı geriye kalan diğer işlemleri yapabilmek için Safe Mode (Güvenli Mod) seçimi yaparak açıyoruz. Windows açılışından sonra C:\windows\softwaredistribution klasörünün adını C:\windows\softwaredistribution.old C:\windows\windowsupdate.log dosyasının adınıda C:\windows\windowsupdate.log.old olarak değiştiriyor ve bilgisayarımızı yeniden başlatıyoruz. Son olarak işlemlerin başında durdurduğumuz Windows Update Servisini eski haline getirip son defa bilgisayarımızı yeniden başlatıyoruz. Bu işlemlerin sonunda artık bilgisayarımızı eskisi gibi kullanabileceğinizi düşünüyorum. Aksi bir durum ile karşılaşırsanız windowsun http://support.microsoft.com/kb/927891/ adresinden konu ile ilgili makalesini okuyabilirsiniz.
Daha iyi css kodlamak için 70 uzman görüş
June 6, 2008 tarihinde postalandı
CSS | Bir yorum bırak altında dosyalandı
- Css dosyası hazırlarken nasıl bir başlangıç yapmalıyım?
- Css kodlarımı nasıl organize edebilirim?
- IDs, Classes, Selectors ve Properties kullanımı
- Css kısaltmaları
- Tipografi ayarları
- İpuçları
gibi belli kategoriler altında toplanmış 70 uzman görüşün verildiği smashingmagazine sitesini ziyaret etmenizi şiddetle tavsiye ediyorum. Mayıs ayında yayınlanan bir blog yazısı olmasına rağmen halen dün gibi geçerliliğini koruyor.
http://www.smashingmagazine.com/2007/05/10/70-expert-ideas-for-better-css-coding/
Döküman tipi HTML 4.01 Transitional olarak tanımlanmış sayfalardaki 100% yükseklik probleminin çözümü
June 6, 2008 tarihinde postalandı
CSS, HTML | Bir yorum bırak altında dosyalandı
Bu yazımda sayfamızı döküman tipi HTML 4.01 Transitional olarak tanımlanan sayfamızın 100% oranında yüksekliği ayarlamak isterken karşılaştığımız hatanın nedenlerini ve nasıl çözüleceği hakkında bilgi vermeye çalışacağım.
İlk olarak standart bir web sayfasının hangi bölümlerden oluştuğu ile işe başlamak daha doğru olacak sanırım. Çok kısa şekilde anlatmak istersem bir web sayfası HEAD ve BODY olmak üzerine iki kısımdan oluşur. HEAD bölümü sayfamızın document type, title, meta tag, css ve javascipt tanımlarımızı yaptığımız tarayıcı ekranı içinde görünmeyen fakat hem arama motorları hemde web sayfanın browser içinde nasıl yorumlanacağını belirlediğimiz bölümdür. BODY kısmı ise tarayıcı ekranında görünen kısımların oluşturulduğu bölümdür. Eğer sayfamızı Dreamweaver, Visual Studio ve benzeri üçüncü parti yazılımlar kullanarak hazırlıyorsak HEAD bölümünün en üst kısmına Document Type tanımlasıda varsayılan değer olarak eklenir. Document Type tanımlaması sayfanın hangi standartlara göre tarayıcı içinde yorumlayacağını belirler ve farklı tanımlamalar varsayılan sayfayı farklı şekilde yorumlayarak tarayıcı içinde gösterebilir. IE 6 ve Firefox olmak üzerine iki tarayıcı içinde nasıl bir çözüme gidebileceğinizi kısaca anlatmaya çalışalım.
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<a href="http://www.w3.org/TR/html4/loose.dtd">http://www.w3.org/TR/html4/loose.dtd</a>">
Sayfanızdaki tanımlamamızın yukarıdaki gibi olduğunu varsayıyorum. Varsayılan CSS belgemizin içine yada sayfa içindeki style tanımlaması altına
-
html, body {
-
min-height:100% // IE altında çalışmaz sadece Firefox ve Opera içinde geçerlidir
-
height:100%
-
}
Sayfamızı sarmayalan ve %100 uzamasını istediğimiz alana verilecek
-
#container {
-
height:100%;
-
}
bu tanımlamayı yaptığımızda sayfadaki değişikliği farkedeceksiniz ama halen eksik birşeylerin olduğunu ve halen sayfamızın istediğimiz gibi çalışmadığıda göreceksiniz. Burada çok ufak bir püf nokta daha var. Döküman tipi tanımlaması içinde yazılı olan “http://www.w3.org/TR/html4/loose.dtd” alanınıda silmememiz gerekiyor ve artık sayfamızı 100% yüksekliğinde problemsiz kullanabilir hale gelebiliyoruz. Bunun body elementi içinde font tanımlaması yapan kişiler için bir sakıncası var. Varsayılan font tanımlamalarınız bozulmuş olacak ve font özelliklerini değiştirmek istediğiniz bölümlerdeki tüm classların içine font tanımlamalarını tekrar yapmamız gerecektir.
« önceki postalar — sonraki postalar »
