JavaScript

Web page performance is critical to keeping customers and visitors moving along on your site. Slow responses typically result in frustrated users, unhappy customers and worse, abandoned orders. It is important to reduce the number of requests generated by a web page in order to increase its actual and perceived performance.

One critical way is to reduce the number of external files loaded by a page. Another one is to reduce their size through compression. This post aims to take this concept a step further by automating this tedious process using open-source libraries.

[click to continue…]

{ 0 comments }

As you might already know, despite looking like a typical select box, Ext.form.ComboBox doesn’t behave exactly as you would expect since it submits the display text instead of the option value. The documentation states:

A ComboBox works in a similar manner to a traditional HTML <select> field. The difference is that to submit the valueField, you must specify a hiddenName to create a hidden input field to hold the value of the valueField. The displayField is shown in the text field which is named according to the name.

this.add([
	{
		xtype: 'combo',
		name: 'suffix',
		hiddenName: 'suffixId', // post this name
		hiddenValue: 0, // default value
		fieldLabel: 'Suffix',
		mode: 'local',
		store: this.suffixStore,
		valueField: 'key',
		displayField: 'display',
		triggerAction: 'all',
		forceSelection: true,
		allowBlank: true
	}
]);

Adding a hiddenName and a default value in hiddenValue does the trick, the default value (0) is set in the hidden field until a user chooses a different value. Unfortunately this breaks when the ComboBox is set to allow blanks and the user tabs over the field. When this happens, the hiddenValue is set to a null string and the user is never prompted to select a value.

Upon form submission, the hiddenField (suffixId) will be set to neither the default nor a valid value.

One solution is to listen for the focus and blur events to reset the value of the hidden field when it has been set to a null string.

this.add([
	{
		xtype: 'combo',
		name: 'suffix',
		hiddenName: 'suffixId',
		hiddenValue: 0,
		fieldLabel: 'Suffix',
		mode: 'local',
		store: this.suffixStore,
		valueField: 'key',
		displayField: 'display',
		triggerAction: 'all',
		forceSelection: true,
		allowBlank: true,
		listeners: {
			'focus': this.handleSuffixChange,
			'blur': this.handleSuffixChange,
			scope: this
		}
	}
]);

handleSuffixChange: function(field) {
	if (field.value=='') {
		field.hiddenField.value = '0';
	}
}

Upon form submission you will be guaranteed a valid value, which is especially beneficial if you’re using the form values to populate a server side bean object.

{ 1 comment }

Introduction to Ext.Direct

Thumbnail image for Introduction to Ext.Direct

Evan Trimboli of the Ext-JS team just published an article describing Ext.Direct, a remoting API that is part of Ext 3.0.

Read the full article →

Ext-JS Conference 2009, April 14-16 in Orlando, FL

Thumbnail image for Ext-JS Conference 2009, April 14-16 in Orlando, FL

Ext-JS has announced their 1st Annual Ext Conference and Ext 3.0 release party on April 14 to 16, 2009 in Orlando, Florida!

Read the full article →

New Book: Learning Ext-JS

Steve “Cutters” Blades’ book on Ext-JS is out. By using a series of straightforward examples backed by screenshots, Learning Ext JS will help you create web applications that look good and perform beyond the expectations of your users.

Read the full article →

Ext-JS JSON Data Reader For ColdFusion

Steve “Cutter” Blades has created a custom JSON Data Reader for ColdFusion, CFQueryReader. It allows Ext-JS developers to populate GridPanels using serialized ColdFusion queries in their native format or formatted for grid. CFQueryReader is designed to accommodate either format automatically.

Read the full article →

Ext-JS Extension for Google Earth API

Bjørn Sandvik, a project manager at the United Nations Association of Norway has created an Ext-JS user extension for Google Earth. The code and examples are here.

Read the full article →

Ext-JS 3.0 Showcases Visual Designer, Updates Roadmap

Jack Slocum has posted a screencast of the visual designer tool that will be part of upcoming release of Ext. The roadmap for version 3, due out in the first quarter of 2009, has also been updated. Here is what we can expect (I am really interested in the ones in bold): All new lightweight, [...]

Read the full article →

Tutorial: Ext-JS Charting and Mapping with Google Visualizations

Aaron Conran posted an entry about Ext.ux.GVisualizationPanel, a user extension that takes advantage of the similarities between the Ext data store and Google’s data table to allow reuse of an Ext data store with Google’s Visualization API.

Read the full article →

Build Your First Ext-JS in Under an Hour

The Visual Ajax User Group is hosting a webinar with Aaron Conran, Sr. Architect Ext-JS on Thursday, October 16th, 2008. Sign up now.

Read the full article →