Review: The best JavaScript book I’ve read

JavaScript, Reading By . Updated March 1, 2009

Having used JavaScript for over a decade, I’ve read many books covering the language. Some focused primarily on syntax. Others recounted and solved specific real-world problems.

Learning a language as a set of tasks is one way to get up to speed quickly, but it’s not a very good way to thoroughly learn a language’s nuances and idioms.

While those sorts of books certainly have their place, it’s disappointingly rare to find a book which presents JavaScript as the first-class programming language that it truly is.

After reading no more than the first page of this book’s preface, I knew that I had finally found the antidote to those trite examples of compound interest calculators and the tedious minutiae of books that spend pages on alert()’s syntax. No, this book is different than the rest…

Click here to read the rest of this post »

A breaking change between versions of ASP.NET AJAX

AJAX, ASP.NET, JavaScript, jQuery By . Posted February 10, 2009

When working directly with JSON serialized ASMX services, be it via jQuery, pure XmlHttpRequest calls, or anything else other than the ScriptManager, one question inevitably arises. That question is of the inexplicable .d attribute that appeared in ASP.NET 3.5.

What is it? Why is it there?

In this post, I’ll use both a 2.0 and a 3.5 example ASMX web service to illustrate exactly what’s going on. I’ll also show you why it’s a good change.

Click here to read the rest of this post »

Design the new Encosia logo. Win $350.

General By . Updated February 10, 2009

The time for this is long past due. The current logo does not make the sort of first impression that it needs to. It’s a good reminder that we should usually stick to our core competencies (i.e. I shouldn’t pretend to be a graphic designer).

I know at least a handful of you are design focused. So, if you want to take a shot at the contest, head on over to the contest page at Logo Tournament and show me what you’ve got.

Update: The contest is over. I want to thank everyone who participated, especially the winner: Anica Soleva.

How to rotate JavaScript ads during ASP.NET AJAX requests

AJAX, ASP.NET, JavaScript, UI By . Updated January 8, 2009

A common question that I find myself fielding lately is how to handle the problem of rotating JavaScript based advertisements. As AJAX becomes ubiquitous on ad supported sites, we must take care that decreasing page views don’t also mean proportionally decreasing revenues.

Many find their way to ScriptManager.RegisterStartupScript, use that to re-inject the script during a partial postback, and expect that doing so will refresh the ad. Unfortunately, that doesn’t work when dealing with JavaScript based ads such as Google’s AdSense.

In this post, I’m going to show you why RegisterStartupScript does not solve the problem, the alternative that I suggest, and how to use that method to also defer loading of advertisements until after your content.

Click here to read the rest of this post »

Best of 2008: 5 most popular posts

General By . Updated December 24, 2008

Reviewing my stats for the year, you might think the only topic I write about is jQuery. Of the posts I’ve written in 2008, 80% of the most popular posts have been jQuery related.

That’s okay with me though. I’m happy to see so many of you embracing jQuery in your ASP.NET applications.

With Microsoft’s surprise announcement that jQuery will be bundled with future versions of Visual Studio, I think the jQuery tangent that ASP.NET developers such as myself, Rick Strahl, and Matt Berseth have explored this year has definitely proven worthwhile.

Click here to read the rest of this post »

3 reasons why you should let Google host jQuery for you

AJAX, JavaScript, jQuery, Performance By . Updated December 7, 2011

All too often, I find code similar to this when inspecting the source for public websites that use jQuery:

<script type="text/javascript" src="/js/jQuery.min.js"></script>

If you’re doing this on a public facing website, you are doing it wrong.

Instead, I urge you to use the Google AJAX Libraries content delivery network to serve jQuery to your users directly from Google’s network of datacenters. Doing so has several advantages over hosting jQuery on your server(s): decreased latency, increased parallelism, and better caching.

In this post, I will expand upon those three benefits of Google’s CDN and show you a couple examples of how you can make use of the service.

Update: Since you’re reading this post, you may also be interested to know that Google also hosts full jQuery UI themes on the AJAX APIs CDN.

If you’ve already read all this and are just here for the link, here it is:

Click here to read the rest of this post »

Have you ever wondered why CodePlex is so slow?

AJAX, ASP.NET, Performance By . Posted December 3, 2008

It’s hard to believe that nearly two months have already passed since opening the doors on the Username Availability Validator project. I made a few mistakes in how I ran the project, but I’m happy with the overall outcome.

However, one thing that disappointed me throughout the entire contest was how slow CodePlex can be. Even as the single person most invested in the success of the project, I often found myself leaving the site in the middle of tasks, unwilling to endure the slowness. What’s worse, I also found myself procrastinating to avoid returning to CodePlex and dealing with these waits.

I’m not one to complain without offering some constructive criticism though. Especially since we’re talking about a completely free service.

I think the lesson to be learned here is something that many ASP.NET developers could benefit from. So, I’d like to take a look at one ASP.NET AJAX related inefficiency that I found on CodePlex and one potential alternative to it.

Click here to read the rest of this post »

Use jQuery and quickSearch to interactively search any data

AJAX, ASP.NET, jQuery, UI By . Updated December 6, 2008

While reviewing my latest post’s outbound click-through stats, I noticed that most of you found Rik LomasquickSearch more interesting than the rest. In light of that interest, I’ve decided to show you an example of how you might implement its functionality in conjunction with ASP.NET.

For this demonstration, I’m going to use Delicious as a source of sample data to apply the technique to. I’m sure you’re getting tired of my RSS feed as demo data, and the Delicious API provides an abundance of topical data via jQuery tag feeds.

In this post I will show you how to use LINQ to XML to query the Delicious API, display that data in a table, apply the quickSearch plugin to that table, work around a problem that arises when using quickSearch with ASP.NET, and lay the groundwork for a “no results” state.

Click here to read the rest of this post »

7 of my favorite jQuery plugins for use with ASP.NET

AJAX, ASP.NET, jQuery, UI By . Updated January 26, 2010

One of jQuery’s greatest strengths is its thriving plugin ecosystem. Hundreds of plugins are available at plugins.jquery.com alone, with even more hosted on author sites. If you think of a feature, chances are there’s a jQuery plugin to implement it in just a few lines of code (if that).

Having used jQuery with ASP.NET for over a year now, I’ve discovered that some plugins are more easily combined with ASP.NET than others. In fact, one popular plugin even fails completely when used with ASP.NET AJAX.

Without further ado, here are seven of my favorites. I couldn’t begin to rank them preferentially, so I ordered them by how long I’ve been using them with ASP.NET.

Click here to read the rest of this post »

Using jQuery to display a modal UpdatePanel confirmation

AJAX, ASP.NET, jQuery, UI By . Updated October 15, 2008

A screenshot of the modal confirmation dialogAfter the previous example of integrating jQuery and ASP.NET AJAX to display modal progress indication, there were requests that I follow it up with an example of also displaying the confirmation modally. So, I’m going to expand the original post with a technique for doing exactly that.

If you missed my first post on the topic, do be sure to read it first. Otherwise, this continuation may be difficult to follow.

Click here to read the rest of this post »