jQuery ajax

If you want to dynamically load content into your page chances are your going to need to do some sort of request to a server in the background. The simplest way of doing this is to use jQuery’s ajax function.

Here’s an example of a GET request and a POST request:

        $.ajax({
            type: "POST", // Set the HTTP type to POST
            url: "/serviceurl.aspx", // URL of the service
            data: "{data: [{"Field1": 1}] }", // Data to be posted to the service
            processData: false, // If set to true the data will be processed and turned into a query string
            success: (function (result) {
                // Result of the service call
            }),
            error: (function (jqXHR, textStatus, errorThrown) {
                alert(errorThrown);
            })
        });

        $.ajax({
            type: "GET", // Set the HTTP type to GET
            url: "/serviceurl.aspx", // URL of the service
            dataType: "jsonp", // Set what type of data you want back
            success: (function (result) {
                // Function that will be called on success
            })
        });
Advertisements

Hot Keys Made Simple

Previously I have blogged about how you can create keyboard shortcuts using JavaScript. In other words being able to add functionality to your web app for someone to do a ctrl+s. My previous example wasn’t particularly hard and only used 10 lines of code, but this week I stumbled across a jQuery plugin that makes it easier.

http://code.google.com/p/js-hotkeys/

With this plugin, in just 1 line of code you can bind a function to a keyboard shortcut. What’s more you don’t even need to look up the correct keycodes as it takes a simple text parameters.

$(document).bind('keydown', 'ctrl+c', fn);

Combine this with a function that just triggers a button click and you have some very cool advanced looking functionality written in around 5 – 10 minuets.

Add keyboard shortcuts to your web app

Keyboard shortcuts are common place in desktop apps, to such an extent that you would probably be surprised if holding ctrl+s didn’t save a document, or if holding ctrl+n didn’t do some kind of new action. But with website’s its a lot less common. The bigger email providers all now provide the support, but for the sites produced smaller companies out there it’s still not the norm. Actually adding the support for it though is actually qutie straight forward.

In this example I’m going to use jQuery but it’s just as easy in everyday JavaScript.

    var isCtrl = false;

    $(document).keyup(function (e) {
	    if(e.which == 17) isCtrl=false;
    }).keydown(function (e) {
	    if(e.which == 17) isCtrl=true;
	    if(e.which == 83 && isCtrl == true) {
		    alert("Hello World");
		    return false;
	    }
    });

What is happening here is relively straight forward. When you hold a key down, JavaScript will pick up an event that says which key was pressed by it’s number. However what it can’t do is pick up a combination, so if you do a ctrl+s what you get is two events (one for the ctrl and one for the s). So on every keydown if it’s a ctrl we set the variable isCtrl to true, then on the next keydown we know it’s a combination. The keyup detects the end of the ctrl being held down and sets the variable back to false.

The return false, when we’ve detected a ctrl+s is also very important as what this will do is stop the browser from carrying out any shortcuts it may have had for that combination.

So there we have it, in around 10 lines of code you can add some functionality to your web app, that seems really advanced but is actually really really simple.