AngularJS is open-source and uses a simple Model-View-Controller framework that is very similar to the basic framework used by Javascript in general. It is supported by a huge community and updates to the framework are regular and meaningful.

seen from China

seen from United States

seen from Sweden
seen from Austria

seen from United States
seen from United States

seen from India

seen from India

seen from United States
seen from United States
seen from India
seen from China
seen from Taiwan
seen from China

seen from Singapore
seen from United States
seen from United States
seen from Mexico
seen from United States

seen from Malaysia
AngularJS is open-source and uses a simple Model-View-Controller framework that is very similar to the basic framework used by Javascript in general. It is supported by a huge community and updates to the framework are regular and meaningful.
5 Top Android Apps für Webworker
Als Webworker seid ihr viel auf Achse und möchtet auch von unterwegs gerne arbeiten ohne immer das schwere Notebook mit herumzutragen? Wie ihr euer Smartphone und Tablet in ein mobiles Büro verwandelt, dazu mehr auf unserem formativ-Blog.
http://blog.formativ.net/5-top-android-apps-fuer-webworker/
Startup your day! #breakfast #healthy #webworker #power #office (hier: Webworker am Königsplatz, Augsburg)
passing functions to another thread in javascript
One thing that sucks about javascript workers is that the data you give them is copied rather than shared. Browsers use the structured clone algorithm defined in the HTML5 specs to accomplish that.
As you probably know, that algorithm isn't capable of cloning Function objects, so it's pretty useless in some cases. But there's a simple workaround if you need to pass a function to a worker thread:
// the worker code: function parseFunction(fnstr) { try{ var fn = Function(fnstr) }catch(err) { console.log("failed to build function from %s", fnstr) } return fn } self.onmessage = function(e) { var fn = parseFunction(e.data) fn() }
// the main thread: function serializeFunction(fn) { var fnstr = fn.toString().replace(/^function[^\)]*\)[^\{]*\{|\}$/g, "") return fnstr } function testFn() { console.log("called testFn in another thread!") } worker.postMessage(serializeFunction(testFn))
This example is really simple, but i guess you get the point. Passing strings to a worker thread works just fine, so you can call toString() on the function you want to pass to obtain its source code. After that you just need to remove everything from that string that doesn't belong to the function body. The worker thread on the other hand can use that string to recreate a similar function in its inner scope using the Function constructor. Functions created that way aren't clones since you can't assign a name to them..so testFn from the example is always anonymous in the worker, but that shouldn't matter in most cases. Note that this simplified example doesn't support functions with arguments, but the code can be easily adapted to do so.