Autor | Zpráva | ||
---|---|---|---|
Suta Profil |
#1 · Zasláno: 30. 7. 2011, 12:34:32 · Upravil/a: Suta
ColorPicker = function() {}; ColorPicker.prototype = { zpracujMousedown : function () { this.nejakaHodnota= true; var that = this; $(document).bind("mouseup.colorPicker",function(){ // jak jinak se můžu dostat ke kontextu metody? that.nejakaHodnota= false; $(document).unbind("mouseup.colorPicker"); }); } Jak se dostat ke kontextu metody, abych nemusel "držet" (a tím zabírat paměť) takto - viz výše? Díky za radu. |
||
Witiko Profil |
#2 · Zasláno: 30. 7. 2011, 12:48:34 · Upravil/a: Witiko
Suta:
Držením je myšlena existence proměnné that obsahující referenci na potomka s prototypem v objektu ColorPicker ? Ta by neměla zabírat víc než kolik - tak 4 bajty? Takže bych se toho "zabírání paměti" tak neobával. Navíc si skutečně nemyslím, že by v případě jQuery existoval elegantnější způsob.
Nezapomeň, že předčasné optimalizace jsou kořenem všeho zla. Člověk si postupem času s přibývající znalostí jazyka osvojí určité generické techniky, jak psát čitelný, udržovatelný a funkční kód. Naopak přehnané optimalizace na úkor čitelnosti jsou často na škodu. Optimalizoval bych, jen když je to potřeba. |
||
Suta Profil |
#3 · Zasláno: 30. 7. 2011, 16:27:33 · Upravil/a: Suta
Witiko:
„Ta by neměla zabírat víc než kolik - tak 4 bajty?“ Kolik byte (bajtů..) přesně nevím. Tady jde ale spíš o to, že podobná operace může na stránce během určité doby (déletrvajícího používání aplikace) nastat třeba 1000x a v takovém případě nevíš, jak se který prohlížeč bude chovat. Člověk stále naráží na rady, jak uvolňovat paměť kvůli nesourodosti prohlížečů a jak předcházet případům jako je výše, proto moje otázka. Jinak souhlasím často s přehnanou obavou a snahou za každou cenu všechno optimalizovat, málokdy to v praxi najde svoje naplnění. |
||
Witiko Profil |
#4 · Zasláno: 30. 7. 2011, 17:09:40 · Upravil/a: Witiko
Suta:
jQuery metody co já vím samy spouštějí callback metody pod kontextem daného elementu. Tento kontext je by design neměnný, tzn.: $("body").click(function() { alert(this === document.body); // true }); ColorPicker u, abys došel k leaku, který by se rovnal velikosti jednoho 4x4 png obrázku. Nejedná se proto o problém, ale o standardní přístup k předání kontextu.
|
||
Suta Profil |
#5 · Zasláno: 30. 7. 2011, 20:00:07
Witiko:
Snad to tak je, díky. |
||
Časová prodleva: 13 let
|
0