How to change pages in a web application in the age of HTML5

More and more web sites stop to use the old way of request-response page switches, where each page switch refreshes the entire page in the browser. Instead they refresh just the data and the page itself is not reloaded. This way has better for performance and it also makes a much smoother user experience. You can see a great example in github where you click on one of the files. In this post I am going to explain how this is achieved step by step. My Demo Requirements: For some reason, almost all of the examples I saw on the internet about this used jquery in one way or another. This post is NOT using any third-party libraries except for history.js script for browsers which do not support the history.pushState feature. I took this script from github. Step 1 – handle links We want that pressing a link will trigger a JavaScript function. You can do that in many ways. I have done it like this: It will go over all the links in the page and will attach a call to function goto(), but it will do it just for the links which points to inner pages. The goto() Continue reading How to change pages in a web application in the age of HTML5

4 JavaScript trivia questions that may help you understand the language a bit better

The next 4 Javascript questions may seem easy to some of you, but I am sure that more than a few will get confused. I believe that these 4 simple questions will help you understand a key feature of the language. Question: What will happen after executing the next JS code? 1. Nothing 2. alert ‘>undefined’ 3. alert ‘>1’ 4. alert ‘>2’ Answer: Nothing, because outer() returned a function but it wasn’t executed. Question: What will happen after executing the next JS code? 1. Nothing 2. alert ‘>undefined’ 3. alert ‘>1’ 4. alert ‘>2’ Answer: alert ‘>2’, because the x that inner() uses is the same x the outer() uses. Question: What will happen after executing the next JS code? 1. Nothing 2. alert ‘>undefined’ 3. alert ‘>1’ 4. alert ‘>2’ Answer: alert ‘>undefined’. Inner uses a variable x which is different than the outer x. The inner x is never initialized Question: What will happen after executing the next JS code? By now the answer should be obvious: alert ‘>3’ .

GreaseMonkey usefull APIs

Many of the GreaseMonkey users are not familiar with the very useful set of APIs it has to offer. These functions can help you, especially if you are using it for large projects. I will show here a few of the more useful APIs to my taste, you can read the entire API reference in the product wiki. Logging A very useful function is GM_log(). It is used to print log messages into the JavaScript console. Example: Storing data locally Use the functions GM_setValue(), GM_getValue(), GM deleteValue() and GM_listValues() to store and retract data on the client side. This data is located in the Firefox preferences mechanism. Example: Adding menu commands Another cool option is being able to add commands to be triggered from Firefox menu. To do that use the function GM_registerMenuCommand(). This adds a new item under “Tools->Greasemonkey->User Script Commands” Example: Ajax calls Use GM_xmlhttpRequest to make ajax calls very easily. Example: Further reading The full API reference