beforeunload

2010.08.04. 08:05 stack

Néha nehezen hiszem el, ennek ellenére az alábbi jelenség gyakran előfordul. Az ügyfél szerkeszt egy űrlapot, majd, mint aki jól végezte dolgát, mentés nélkül kilép. Az ilyen problémák elkerülése végett mindenképpen hasznos a beforeunload esemény kezelése. Ha a függvény egy nem null értékkel tér vissza, akkor a böngésző saját üzenete mellett megjeleníti azt és felajánlja a kilépés mellőzését:

window.onbeforeunload = function () {
    if (myComponent.isModified()) {
        return 'Kilépés esetén a módosítások elvesznek.';
    }
};

Szólj hozzá!

Címkék: nem extjs unload

Mandelbrot halmaz CANVAS elemmel

2010.03.27. 18:07 stack

Nagy érdeklődéssel figyelem a HTML5-ről, illetve a CANVAS elemről szóló jóslatokat. Nincs kétségem, hogy még szép jövő áll előttük. Már régóta terveztem, hogy legalább egy hello world típusú példát összedobok magamnak, de idő sem volt rá, illetve érdekes minta feladatot sem sikerült kitalálni.

Igaz, miután eszembe jutott, hogy milyen jópofa lenne Mandelbrot halmazokat rajzolni rákerestem a neten és láttam, hogy előttem már vagy százan megcsinálták. :) Mindegy... érdekes feladatnak tűnt. http://stack.hu/mandelbrot/
Ja, és megfelelő böngésző szükséges hozzá! :)

1 komment

Címkék: mandelbrot html5 nem extjs canvas

tömb rendezés + összehasonlítások száma

2009.12.05. 10:18 stack

Az elmúlt hetekben több helyen is találkoztam ehhez hasonló mintakóddal, mivel az eredményeken jót mosolyogtam, gondoltam én is kiteszem. Nagy jelentősége persze nincsen, csupán érdekesség.

Adott egy 1000 elemű tömb, benne az elemek növekvő sorrendben. Vajon az egyes böngészők hány összehasonlítást használnak rendezés közben?

var list = [];
for (var i = 0; i < 1000; i++) {
    list.push(i);
}
var count = 0;

list.sort(function(a, b){
    ++count;
    if (a < b) {
        return -1;
    }
    if (a > b) {
        return 1;
    }
    return 0;
});

alert(count);

Az eredmények:

Szólj hozzá!

Címkék: sort array nem extjs

WHERE col IN (v1, v2) ORDER BY col = v1 LIMIT 1

2009.09.21. 07:43 stack

Adott egy szótár tábla: szöveg az adott nyelven, nyelv kód, szöveg azonosító. Feladat, írjuk ki a „kilépés” szót egy kiválasztott nyelven, de ha úgy nem létezik a táblában, akkor angolul. Mindezt egy lekéréssel:

SELECT `text`
  FROM `dictionary`
 WHERE `label` = "exit" AND `lang` IN ("en", "hu")
 ORDER BY `lang` = "hu" DESC
 LIMIT 1

Szeretem az ilyen apró ötleteket.

Szólj hozzá!

Címkék: mysql nem extjs

Math.sum()

2009.09.15. 18:39 stack

Néha a legtermészetesebb függvények hiányoznak...

Math.sum = function (array) {
    var sum = 0;
    var t = typeof array.length == 'number' ? array : arguments;
    for (var i = 0; i < t.length; i++) {
        sum += t[i];
    }
    return sum;
};

(Zárójelben, kisbetűvel: ExtJS 3-ban létezik Ext.sum)

Szólj hozzá!

Címkék: math nem extjs sum

Array.unique()

2009.06.15. 21:26 stack

csak úgy, mert hasznos...

Array.prototype.has = function(v) {
    for(var i = this.length; i;) {
        if (this[--i] === v) {
            return true;
        }
    }
    return false;
};

Array.prototype.unique = function() {
    var a = [];
    for(var i = this.length; i;) {
        if (!a.has(this[--i])) {
            a.push(this[i]);
        }
    }
    return a;
};

UPDATE: az eredeti script közel kétszer annyi futási idővel dolgozott, ezért le lett cserélve...

14 komment

Címkék: unique array nem extjs

LIKE BINARY

2009.05.13. 15:36 stack

MySql alapértelmezetten nem érzékeny a kis és nagybetűkre, ami néha talán még előnyös is lehet. Ám vannak esetek, amikor nem, ilyen például az azonosító és jelszó bekérése. A BINARY kulcsszó megadásával szigoríthatjuk a vizsgálatot.

SELECT 'A' LIKE 'a', 'A' LIKE BINARY 'a', 'A'= 'a', 'A' = BINARY 'a'

Az eredmény meg: 1, 0, 1, 0

Szólj hozzá!

Címkék: mysql nem extjs case sensitive

Array.shuffle()

2009.04.27. 22:57 stack

Tömb elemeinek összekeverése:

Array.prototype.shuffle = function () {
    var result = [];
    while (this.length) {
        result.push(this.splice(Math.round(Math.random() * this.length - 1), 1)[0]);
    }
    return result;
};

Szólj hozzá!

Címkék: shuffle array nem extjs

String.ucFirst()

2009.04.19. 21:56 stack

Az első karakter legyen nagybetűs...

String.prototype.ucFirst = function() {
    return this.charAt(0).toUpperCase() + this.substr(1);
};

1 komment

Címkék: string nem extjs ucfirst

String.truncate

2009.02.18. 22:44 stack

Szöveg vágásnál sokan nem tőrödnek azzal, hogy szavakat vágnak ketté, pedig néha egy félbevágott szó kifejezetten csúnya, illetve előnytelen lehet.

Az alábbi kód szinte egy az egyben a PHP-Smarty-ból vet kód JavaScript implementációja:

String.prototype.truncate = function(length, etc, break_words) {
    if (typeof length == 'undefined') length = 80;
    if (typeof etc == 'undefined') etc = '...';

    if (!length) return '';
    if (this.length <= length) return this.toString();

    length -= etc.length;

    if (break_words) {
        return this.substr(0, length) + etc;
    }
    return this.substr(0, length+1).replace(/\s+?(\S+)?$/,'') + etc;
};

És akkor egy példa, hogy miről is van szó:

var str = 'Lorem ipsum dolor sit amet consectetur adipiscing elit.';
for (var i = 0; i < 60; i++) {
    console.log( i, str.truncate(i) );
}

Szólj hozzá!

Címkék: string nem extjs truncate

ExtJS blog, mi ez?

Az ExtJS egy JavaScript keretrendszer, melyet a blog írója elfogultan a legjobbnak tart, és ez a blog olyan apróságok gyűjteménye, melyek ExtJS használata közben felmerültek, eszébe jutottak...

Címkék

ajax (4) alignto (1) állás (3) analytics (1) anchorto (1) android (4) animate (2) array (9) auto (1) back button (1) beautifier (1) beforeevent (1) benchmark (1) blur (1) budapest.js (1) button (1) canvas (1) capture (1) case sensitive (1) center (1) change (1) cikkajánló (1) class (2) closure compiler (1) collapse (1) combobox (3) comment (1) console.log (2) contextmenu (2) core (2) count (1) css (15) csv (1) dataview (1) date (4) datefield (3) datepicker (1) debug (1) doksi (1) dragdrop (1) easing (1) eclipse (1) editor (1) element (5) error (5) eval (2) event (1) fejtörő (1) field (2) fieldset (1) filter (1) firefox (4) firefox extension (2) focus (3) fonts (1) fun (1) function (1) google (2) google chrome (1) grayscale (1) grid (4) group contact (1) header (3) height (2) hidden (1) hirek (2) history (1) htaccess (1) html5 (2) htmleditor (2) https (1) icon (3) id (2) ie (2) ie6 (1) ie9 (1) iframe (3) image (2) indexof (1) javascript (1) jquery (2) jslint (2) jsmin (1) json (7) keymap (1) kipróbálom (2) könyvajánló (2) label (1) layout (1) lint (1) log (1) loop (1) magyar (2) mandelbrot (1) mask (1) math (1) maxlength (1) mistake (1) mysql (5) napi szívás (16) nem extjs (12) node (1) nth child (1) number (1) off (5) offline (1) operator (1) override (20) pagesize (1) paging (2) panel (2) php (7) picker (1) plugin (3) pozicionálás (2) preload (1) print (1) propertygrid (1) pseudo (3) readonly (2) record (1) regexp (1) replace (1) resizable (1) rotate (1) round (1) scale (1) sencha touch (2) server (1) shuffle (1) slider (1) sort (3) sortable (1) store (2) string (7) sum (1) tabchange (1) tabpanel (1) tab key (2) tdd (1) template (1) textarea (2) textfield (1) textitem (1) theme (2) throw (1) timer (1) timestamp (1) title (2) toggle (1) toolbar (6) tools (1) total count (1) transparent (1) tree (1) treenode (1) trigger (1) truncate (1) try (1) ucfirst (1) undefined (2) unique (1) unload (1) urlencode (1) utf8 (2) verzió (1) video (1) viewer (1) viewport (2) visible (2) vtype (1) window (2) xtype (1) zindex (2)

Extjs.blog.hu - RSS

Kérdés?

süti beállítások módosítása