Yeni yazı eklendi Lanet olası INTERVAL'ler :) iyibu! yeniden..

Hem up olsun hem de ilk mesajı almış olayım konu editleme hakkım giderse diye.. iyibu! yeniden..

Merhabalar uzun zamandır javascript ile içli dışlıyım. Şeyhe gre "Biraz yanardnerli web siteleri yapmak istiyorum. " diyenlerin tercihi gibi tanımlansa da şu durumda herşeyi javascript olarak grüyorum neden bilmiyorum çok sevdim bu dili :) Karman çorman olacak bir bilgi birikimi olacak ama aklıma geldikçe yazmayı düşünüyorum güzel bir yazı olacak düzenledikçe ama şuan bunu yazınca bu şekilde olmayacak zamanla :) Başlıyoruz: Null kavramı Javascript'te null kavramı en çok can yakan konulardan biridir bence. Üşendiğimden google'a null yazıp türkçesini yazmaya gerek bile duymuyorum olmayan değer demek işte. Sıkıntı şurada. . length eki ile bir object'in veya dizinin sayısını bulabiliyoruz fakat eğer değişkenimiz null ise sıkıntı çıkıyor ve hooop tüm çalışma duruyor. Veya şu açıdan bakalım bir diziyi tertemiz ettik yani "" şeklinde tanımladık bu sefer de null olarak grünmesini ayarladığımız fonksiyonumuz bunu tanımıyor. Sahi o fonksiyon basit bir halle şu function isNull { if else } Tabi bunu typeof olarak değilde str null şeklinde de yapabiliriz veya direk if de yapabiliriz. fakat tam istediğimiz olmuyor. Çok uzatmadan işimize yarayacak fonksiyonu veriyorum: function empty { // discuss at: http://phpjs.org/functions/empty/ // original by: Philippe Baumann // input by: Onno Marsman // input by: LH // input by: Stoyan Kyosev // bugfixed by: Kevin van Zonneveld // improved by: Onno Marsman // improved by: Francesco // improved by: Marc Jansen // improved by: Rafal Kukawski // example 1: empty ; // returns 1: true // example 2: empty ; // returns 2: true // example 3: empty ; // returns 3: true // example 4: empty ; // returns 4: true // example 5: empty({'aFunc' : function }); // returns 5: false var undef, key, i, len; var emptyValues = ; for (i = 0, len = emptyValues. length; i < len; i++) { if } if { for { // TODO: should we check for own properties only? //if (mixed_var. hasOwnProperty } return true; } return false; } Kendi yazdığımı koymak isterdim ama uğraşmak istemedim ve çok hoşuma gitti bu fonksiyon :) Aslında kütüphaneyi epeydir kullanıyorum tavsiye ederim php. js.. Javascript ile REGEXP çok kolay! Aslında hemen her javascriptle uğraşmış kişi biliyordur ama yine de eklemek istedim. Aklınızda bulunsun diye.. bir değişkende regular exp. ile bazı zel tanımlı szcükleri harfleri karakterleri seçip eleyebilirsiniz. Javascript bunu yapıyor üstüne bir diziye ekliyor. Bulamazsa direk null a atıyor. var kelime = "bulunması gereken kelimeler listesi olsun tarikat turan gibi kelimeler de"; var es = kelime. match ; console. log ; //çıktı şyle olacaktır: turan, tarikat, kelimeler Burada farketmemiz gereken i ve g flaglariyle büyük küçük ve tam veya eksik karakterlere dikkat etmeden eşleştirme yapmış olmamız. Ve regex ifademizi kesinlikle tırnak içerisinde yazmadık. Tüm sonuçlarımız bir arraye atandı yani gnül rahatlığıyla bunu kullanabiliriz. Bulamasaydı da yukarıdaki null denetlemesiyle bunu çekebilirdik herşey bukadar basit. Kim korkar forumlardaki linkleri otomatik işaretlemeden veya eklenilecek bir başlığa sansür uygulamaktan :)) Lanet olası INTERVAL'LER Aynen yazıldığı gibi okumamdan mı bilmiyorum benim en çok başıma bela olan zımpırtı budur javascriptte. Neden baş belası oldu? Adam akıllısını ğrenmeden akıllıca kodlamadan yaptığım tüm interval'ler sitede zaman geçtikçe sapıtmaya başladı. Bu zımpırtı ne işe yarar? Kısaca belli bir kod bloğunu belirtilen zamanlarda tekrar çalışmasına yarar. E harikaymış neresi zor? Eğer siz bu intervalin içerisine kod bloğu yazmaktan ziyade büyük bir fonksiyon yazmak isterseniz tekrar tekrar tetiklemede intervali tekrar tetikliyor mu kontrol etmezseniz sonsuz bir dngüye giriyor. Atıyorum 2 saniyede bir yenilenmesi gereken bir kod bloğu 2 saniyede 1, 4 saniyede 2, 6 saniyede 4, 8 saniyede 8, 10 saniyede 16 kez tekrar ederek sizin planladığınızın dışına çıkıyor (dikkat edilirse ilk 8 saniye pek birşey anlaşılmayacaktır ama sonrasında sapıtıyor 2^n olarak arttığı için) Ne yapmamız lazım? Aslında çok basit tetiklenmesini istediğimiz intervali bir değişkene atayıp ona gre kontrol etmemiz gerekiyor. Teorik kısmını çok uzattık (zaten en sevmediğim kısım pek anlatmayı beceremiyorum : Pratik kısma geçelim; Alın size tıpkı anlatmak istediğim gibi hazırlanmış insanı çıldırtan bir rnek: http://www.w3schools.com/jsref/tryit. asp?filename=tryjsref_win_setinterval_param Koskoca w3schooldaki insanların bile aklına gelmediği veya grmezden geldiği bu olayı anlamak için 2-3 kez start tuşuna basın. Sonra durdurabiliyorsanız durdurun o hello yazıcıklarını tutabilene aşk olsun. Bunun sebebi çalışıp çalışmadığını denetlemeden tekrar tekrar intervali çalıştırmak ve en sonunda tek bir değişkenle tarayıcının birden fazla kod bloğunu çalıştırması sonucu o çalışan işlemleri durduramamak. Yani stopInterval ile durdurabiliyorsunuz fakat yalnızca 1 tane. Çünkü 1 değişken 1 kod bloğunu temsil eder. Ama tarayıcı o 1 değişkene onlarca kod bloğunu atayıp saptırabilir. <! DOCTYPE html> <html> <body> <p>Click the Start button to output "Hello" once every 2 seconds.</p> <p>In this example, we also output the parameters that were passed to the alertFunc function (does not work in IE9 and earlier).</p> <button onclick="myStartFunction ">Start</button> <button onclick="myStopFunction ">Stop</button> <p id="demo"></p> <p id="demo2" style="color:red;"></p> <script> var myVar; var isWork = false; function myStartFunction { if else } function alertFunc(param1, param2) function myStopFunction </script> </body> </html> İşte benim çzüm nerim bukadar basit. bir isWork değişkeni tanımlayacaksınız. Sonra buna gre çalışıyor mu çalışmıyor mu deneyeceksiniz. Peki onlarca intervalli bir script yazacaksınız hepsine farklı bir değer mi atamalısınız? Hayır tabiki de var isWorkArray = ; function isWork { if(isWorkArray. indexOf != -1) else } function toWork { if else { var index = isWorkArray. indexOf ; if(index!=-1) } } Az nce yazdığım bu kod bloğunu denemedim ama muhtemelen çalışır. Olay şu şekilde işliyor; isWork fonksiyonu ile isim verdiğiniz o interval çalışıyor mu onu kontrol edersiniz true veya false olarak sonuç dnderir. toWork ise o intervali true veya false şeklinde değer atayarak çalışıp çalışmadığını kontrol edersiniz. Yani bi nceki kod bloğunda yaptığımız gibi durdurduğumuzda toWork dememiz; çalıştırdığımızda da toWork dememiz yeterli olacaktır. Bylece isterse 100 tane interval kullanın hata veya bir sapıtma gzlemezsiniz.. Bir sonraki problem/çzüm yazımı da ilerleyen zamanlarda ekleyeceğim hoşçakalın (1 yazı eklendi js regexp) (1 yazı daha eklendi lanet olası intervaller) son güncelleme: 12.08-12:40 More about Hangi Programlama Dilini ğrenmeliyim Sorusunun cevabı on:Hangi Programlama Dilini ğrenmeliyim Sorusunun cevabı" by_Tet tarafından 12/Ağu/15 12:59 tarihinde düzenlenmiştir iyibu! yeniden..

sagolasin hocam. biraz da nodejs anlatsan? ozellikle halka sunma olayini pek anlayamadim. yani port falan cozemedim bi turlu. O da aklımda hocam fakat onunla ilgili yazacağım bilgiler muhtemelen yalnızca bir site için açmak için ipuçları gibi olacak. Node. js bilgime çok da güvenmiyorum açıkcası.. iyibu! yeniden..

sagolasin hocam. biraz da nodejs anlatsan? ozellikle halka sunma olayini pek anlayamadim. yani port falan cozemedim bi turlu. black implies white, self implies other, life implies death.

javascript, jquery, ajax çok hojdur ama benena =/https://www.youtube.com/watch?v=d7iY-j50LY4 can sıkıntısından lüyorum ya -,- eline sağlık hocam. ..

Emeğine sağlık hocam. Bu gibi deneyimlenen bilgiler çok degerli. Takipteyim.. Paslanmış bir uygulama geliştirici.. #AnalistŞart

teşekkürler. devamını merakla bekliyorum.