Update: If you use Chrome then you can use "Throttling" so simulate slow network for all your assets. This should be easier than proxy. Toggle device mode Choose Network type. Refresh the page https://developer.chrome.com/devtools/docs/device-mode Proxy: For some time I wanted to use some proxy for development and testing of eg. slow internet connection, but it was hard to find something useful and free. I know there is Charles but buy it to use it at most one in a month is not for me. I started thinking about Node.js, maybe I can write proxy for me? But fortunately I found one. https://github.com/nodejitsu/node-http-proxy With this module I can write really short code to create slow server: var http = require('http'), httpProxy = require('http-proxy'); httpProxy.createServer(function (req, res, proxy) { var buffer = httpProxy.buffer(req); setTimeout(function () { proxy.proxyRequest(req, res, { host:
Ciekawe podejście.
ReplyDeleteSzczególnie interesujące wydaje się wywoływanie switcha jako obiektu.
Będę musiał sprawdzić, o ile jest to szybsze od zwykłego switcha.
Jeśli jednak chodzi o rozwiązania w stylu
$('.aaa').length zamiast $().size()
to mam mieszane uczucia. Nie sądzę, aby przyspieszenie było aż tak wielkie. Natomiast ryzyko tego, że kiedyś cokolwiek się zmieni i to size() będzie czymś więcej niż tylko prostym zwróceniem length wydaje mi się wystarczająco duże (nie mówię akurat, że nagle kolekcje w JS stracą takie pole, ale ogóle jestem zdania, że lepiej jest wywoływać metodę, niż pole wprost).
Ja bym nie przesadzał jeśli chodzi o optymalizację. Kod powinien być po pierwsze łatwy w utrzymaniu.
ReplyDeleteJeśli chodzi jednak o .length zamiast .size() to w przypadkach gdy jakaś funkcja jest wywoływana bardzo często, powiedzmy mainloop gry, czy w setInterval itd. może to mieć znaczenie.
Powyższe w większości stosował bym tam gdzie jest konieczne choć trzeba przyznać, że niektóre z nich są tak oczywiste, że nie ma powodu by nie stosować za każdym razem :)
var utilFun = lib.ro.util.superFun;
utilFun(1);
utilFun(2);
utilFun(3);
utilFun(4);
będzie bardziej czytelne i szybsze niż wersja dłuższa.
PS. (No chyba że to IE9? :)