Let’s put our revealing module pattern into asynchronous modules definition (AMD).
modular, we generally mean it’s composed of a set of highly decoupled, distinct pieces of functionality stored in modules. As you probably know, loose coupling facilitates easier maintainability of apps by removing dependencies where possible.
Loose coupling implies each component can operate or be tested independently of other components.
Tight coupling implies each component “knows” the details or inner workings of other components.
In just a few lines of code you can provide for architectural features above to improve from revealing module pattern to asynchornous module definition code. Here’s a look into why and how.
Web browsers, for security and privacy reasons, prevent documents in different domains from affecting each other; that is, cross-site scripting is disallowed.
That means that communication between frames, tabs, and windows was restricted for security reasons. If browsers allowed you to access content loaded into other frames and tabs, site could steal information another site using scripting. So, attempting to retrieve or modify content loaded from another source raises a security exception and prevents the operation.
But there are cases where you want content from different sites to be able to communicate inside the browser, such as for mash-ups.
To meet this need, HTML5 allows Cross-Document Messaging and Channel Messaging.
In this post, you will learn:
- How to send a message to an iFrame using Cross-Document Messaging.
- Describe several security considerations in using Cross-Document Messaging.
- How to send and receive a message using Channel Messaging.
- Describe the function of ports when using Channel Messaging.
Continue reading “HTML5 Tutorial – Messaging”
Web Workers allow running scripts in the background without blocking or freezing the user interface. By using Web Workers to run non-UI scripts in the background, your application can take advantage of multiple cores on your machine to execute scripts concurrently.
Workers allows you to spawn background workers running scripts in parallel to your main page. This allows for thread-like operation with message-passing as the coordination mechanism. Web Workers are also described as “Workers”.
This means that a long running computation no longer needs to block your user interface. HTML5 Web Workers typically run on separate threads so you can take advantage of multicore CPUs.
Continue reading “HTML5 Tutorial – Web Workers”