Tuesday, 19 March 2013

“Basic variables in omniture tool”

Omniture is a tool which is used for tracking purpose,in this we use variables,
Basic type of variables which used in custom implementation are :
  • s.Props
               (s.Prop1,s.Prop2,……..s.Prop75)
                Custom traffic purpose this variable is used.
  • s.eVars
               (s.eVar1,s.eVar2,……..s.eVar75)
               For conversion variables this variable is used.
  • s.events
               (s.event1,s.event2,……..s.event75)
               For counter purpose this variable is used.

OMNITURE REPORT SUITE

Create a report suite,
It includes a columns like:
  • Suite id
  • suite title
  • url
  • time zone
  • estimate pageviews per day
  • base currency
The above is for omniture but in Google analytics one of the above point that is “estimate page views per day” will not be there.
In google analytics that is disadvantage,the omniture tool is costly, it is a contract based,so we can ask the data loss if….
omniture has a harddisk space.
Thus the small difference we can see in omniture tool and google analytics tool in web analytics.

veb analytics-funnel analysis

Hi in Web analytics(vebanalytics) funnel analysis is used.
Funel analysis is the new term i have learnt today in web analytics , so  i am sharing this….
Funnel analysis allows you to measure web conversions of you site. Our funnel experts monitize your sales,leads to increase your conversion rate.
WE CAN VIEW SOME MORE INFORMATION IN THIS BELOW LINK :
http://www.vebanalytics.com/funnel-analysis.php?mid=536

BE AN EXPERT IN SEARCHING IN SEARCH ENGINES

Search engines includes google,yahoo,bing etc.
Most popular search engine is google.Usage of google is increasing day by day.Almost 10.3 Billion searches have been made on Google last year.
People used to type in the keyword query and search through but it will result with unrelevant searches along with the content you look for and we also will be keep on changing the query to extract the information we need.
There are some tips for searching in google to get appopriate result.
  • Explicit Phrase:
For instance if you are looking for content about digital marketing.  Instead of just typing digital marketing into the Google search box, you will likely be better off searching explicitly for the phrase.  To do this, simply enclose the search phrase within double quotes.
Example: “digital marketing”
  • Exclude Words:Lets say you want to search for content about digital marketing, but you want to exclude any results that contain the term advertising.  To do this, simply use the “-” sign in front of the word you want to exclude. 
Example Search: “digital marketing” -advertising

  • Site Specific Search:
    Often, you want to search a specific website for content that matches a certain phrase.  Even if the site doesn’t support a built-in search feature, you can use Google to search the site for your term. Simply use the “site:somesite.com” modifier.
Example: “digital marketing” site:www.smallbusinesshub.com
  • Similar Words and Synonyms:
    Let’s say you want to include a word in your search, but want to include results that contain similar words or synonyms.  To do this, use the “~” in front of the word.
Example: “digital marketing” ~professional
  • Specific Document Types:
    If you’re looking to find results that are of a specific type, you can use the modifier “filetype:”.  For example, you might want to find only PowerPoint presentations related to digital marketing.
Example: “digital marketing” filetype:ppt
  • This OR That:
    By default, when you do a search, Google will include all the terms specified in the search.  If you are looking for any one of one or more terms to match, then you can use the OR operator.  (Note: The OR has to be capitalized).
Example: digital marketing OR advertising
  • Phone Listing:
    Let’s say someone calls you on your mobile number and you don’t know who it is.  If all you have is a phone number, you can look it up on Google using the phonebook feature.
Example: phonebook:629-555-1212 (note: the provided number does not work – you’ll have to use a real number to get any results).
  • Area Code Lookup:
    If all you need to do is to look-up the area code for a phone number, just enter the 3-digit area code and Google will tell you where it’s from.
Example: 617
  • Numeric Ranges:
    This is a rarely used, but highly useful tip.  Let’s say you want to find results that contain any of a range of numbers.  You can do this by using the X..Y modifier (in case this is hard to read, what’s between the X and Y are two periods.)  This type of search is useful for years (as shown below), prices, or anywhere where you want to provide a series of numbers.
Example: president 1940..1950
  • Stock (Ticker Symbol):
    Just enter a valid ticker symbol as your search term and Google will give you the current financials and a quick thumb-nail chart for the stock.
Example: GOOG
  • Calculator:
    The next time you need to do a quick calculation, instead of bringing up the Calculator applet, you can just type your expression in to Google.
Example: 48512 * 1.02
  • Word Definitions:
    If you need to quickly look up the definition of a word or phrase, simply use the “define:” command.
Example: define:plethoraThere are few more tips as well with the usage of Converters, Using link in place of Site, Analysis of Site on google and lot more the above listed are few basic tips for your benefits…!

OMNITURE ASSIGNMENT

List of the sites that uses “omniture tool”
  1. tunewarner.com
  2. techcrunch.com
  3. overstock.com
  4. paypal.com
  5. walmart.com
  6. mapquest.com
  7. whitepages.com
  8. oreck.com
  9. manta.com
  10. tmz.com
  11. apple.com
  12. windows.com
Mostly all who are new to web analytics and omniture tool they have this question on their mind that How we know that particular site uses omniture tool?
Go to that particular web site view the source code and find the keyword omniture in that source code if it is there then that particular website using the omniture tool if not that site is not using omniture tool.

Incident tracking tool

WHAT IS INCIDENT TRACKING TOOL??WHAT ARE THE BENIFITS OF THIS TOOL???
For the above question the answer is :
Incident tracking tool can be used to maintain and track all incidents.
This wil help us to manage the incident maintainance process internally with accuracy in efficent way.
It is a web application can be accessed from anywhere through internet.
Every member has a separate login credentials to the tool.
By using this tool it is very easy to generate the metrics as per the client requirements.
And also by using this it is very easy to track the shift status.
The modification and updates to any fields can be easily done through databases.
The entire prerequisite and the templates are published in the tool.
The summary and action items of all incidents will be dispalyed in the home page.
Easy search of all the incidents based on incident id,country name and comments.
The priority resolution time details are controlled automatically by the tool.
These are the benefits included in this incident tracking tool, it is very useful.

Ways to increase Referral traffic

1.Writing BLOGS about this site and the information of the site.
2.Write BLOGS on the main links of this site and also promiting it on social media web sites or link building sites
like
   facebook.com,
   delicious.com,
   digg.com,
   fark.com,
   reditt.com,
   oneview.com,
   slashdot.org,
   diigo.com,
   jumptags.com,
   newsvine.com,
   a1-webmarks.com
3.Publish an information of that site as an article in article directiories and include links.
4.Add links to this site on wikepedia on relevant section like
if the information based on technology it should be included in the technology community section.
5.Including more user friendly options if they like any information they can email it to their friends,
and give their comments and feedback,and they can give vote.
6.Include the blog on “Add to Favourites”.
7.Publish the directiories on free directiores like
   Freewebdirectory.com,
   Rightwingeye.com etc…
8.In cognizant.com the information,photos and videos are there and share it so referral traffic increases.

Brief steps to increase referral traffic taking an example website

Sources of Referral Sites:
§Informative Sites & Blogs
§Social Media
§File Sharing Sites
§Video & Image Sharing Sites
Informative Sites & Blogs:
•The informative sites & blogs will help our site to get a lot of referral traffic.
•The content of this sites & blogs includes:
ØLatest updates in Technology
ØLatest happenings in the Industry
ØNews Articles
ØInformation about Seminars, Webinars
•Most of the Content in this sites consists of a social media “Share” button which will allow the users to share the content to social media.
•The users are actually interest in sharing the latest updates and happenings in the industry.
•The users who wants to know about the industry would like to attend the seminars or webinars which will make them share that particular seminar or webinar.
Social Media
ØSocial Media weapons like Facebook and LinkedIn helps the Cognizant.com website to get more referral traffic.

Facebook:
•In Facebook, a good marketing strategy with a active fan page will get you more traffic.
•It will be good if we can share the images, videos and whitepapers in the Facebook fan page which will make users to share the page.

LinkedIn:
•LinkedIn is one important professional medium which will drive the target traffic to our site.
•Active participation in specific groups will fetch the target traffic.
File Sharing Sites
§There are hundreds of pdf documents present in the Cognizant.com website with loads of information.
§It will be good if we can upload these pdf documents in the file sharing sites with the target keyword to increase the referral traffic.
Video & Image Sharing Sites
§Cognizant.Com website is having lot of videos & images.
§Sharing these videos & images in the referral sites will actually fetch lot of traffic to the website

Google Maps

Hi friends i saw a new update in google maps i like to share with you all.
Now google maps highlighting borders of the cities,postal codes & more.
A new feature added in the google maps,which is highlighting with a pink color which indicates the border of the cities.
We can view pinkish color highlight around the border.

About CardioLog web analytics tool

Hi friends today i like to share a new thing i browsed today…..
Cardio log web analytics have a web site https://www.intlock.com/
This tool has advantages like:
https://support.intlock.com/entries/507853-intlock-intros-cardiolog-2011-web-analytics-solution-for-sharepoint-internet-sites
  • New reports package for SharePoint Internet Sites, including: traffic sources, navigation summary, IP drill down and more.
  • A new state of the art web-based user interface and graphical charts.
  • A full web analytics package which includes a unique JavaScript tracking mechanism designed for SharePoint.
  • Full product localization support for English, German, French, and Spanish.
  • Intuitive configuration wizard for quick integration with SharePoint 2010, 2007 and 2003.
  • Seamless integration based on SharePoint’s hierarchy, taxonomy, content, and user metadata.
  • Advanced visitor segmentation, including integration with Active Directory, SharePoint user profiles, SharePoint audiences, and others custom organizational structures.
  • Sub sites and documents reports-based, provided by a built-in tree view of the portal structure.
  • Advanced real-time reporting and campaigns tracking – displaying the last hour of content views, link clicks, banner clicks, email referrals, and more.
  • CardioLog is provided as an on-premise software solution which allows for full privacy and ownership of data.
It is used for Share point site…
The code integration for Non share point site???
https://www.atidan.com/cardioLog.php
CardioLog offers web analytics for non SharePoint web sites and external applications. Reporting for these sites relies on a predefined sitemap which is built according to the logical structure of the site.
Using the CardioLog SDK, visitor properties can be automatically imported from external sources – to be used for segmenting and grouping report data.
I am sharing with you all because it is new for me..new knowlwdge.. :)
Hi friends I am in web programming domain now,i got transfer from Chennai from Web analytics team,in one of the Web programming project there is a need help about the CardioLog web analytics tool,so i gathered some of the information about CardioLog web analytics tool which is new to me so i am sharing this information with you all.
  • CardioLog enterprise edition, saves data history for 5 years.
  • It is an integrative solutio that offers monitoring and reporting for enterprise portals of various technologies Microsoft share point 2010,Microsoft share point 2007,Microsoft share point 2003.
  • Unlike other Web analytics tools it offers statistical aggregations based on logical structure of the monitored environment as well as aggregations based on physical structure(URL address).
  • It gives full support of integration with multiple Active Directories.
It offers:

  • Data filtering by users & groups in Organization.
  • Monitoring of portal events:views,updates,searches(various time intervals organizational hireacheal tree)
  • Generation of queries about portal usage and displaying them as tables,charts,meters(guages) and distrubuting them as Web interface,Email,Sharepoint web parts.
It is designed for :
  • IT managers
  • Content managers
Monitoring Non SharePoint Websites:
1.Install Basic Agent: Monitors visitor behavior, code is placed in master page after closing head tag .
2.Custom tree web service: It is logic tree representing hierarchal structure. For Non SharePoint websites we have to specify the external web service to logical.
3.Monitoring a New Environment Check List: Verifying web site tree structure is according to XML Schema and also verifying custom tree web service returns a valid XML Response.

New to XML schema

0
Report Abuse Add to Bookmarks Share
  • XML : Extensible Markup Language.
  • It is used for structure store and Transport information.
Example of simple Xml Schema:
  • XML Schema is an XML document defintion.
  • Definiting the XML document and its elements is an XML Schema.
simple.xsd:
<?xml version=”1.0″ encoding=”UTF-8″?>
<xs:schema xmlns:xs=”http://www.w3.org/2001/XMLSchema“>
<xs:element name=”student”>
<xs:complexType>
<xs:sequence>
 <xs:element name=”firstname” type=”xs:string”>
 <xs:element name=”secondname” type=”xs:string”>
</xs:sequence>
</xs:complexType>
<xs:element>
</xs:schema>
Here,
  • xmlns is namespace,
  • xs is xml schema.
simple.xml:
<?xml version=”1.0″ encoding=”UTF-8″?>
<student xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”simple.xsd”>
<firstname>sai</firstname>
<secondname>sri</secondname>
</student>
Thus an simple example of an XML Schema basic.
Hi friends if you are new to XML Schema..you dont know about XML Schema dont worry you can use the XML Viewer Tool which automatically generate the XML and also XML Schema.
XML Schema for the web site,
 first know about the elements included in a hierarchal format,by using that elements and XML Viewer we can create XML Schema.
Example :
OMTreeXmlSchema.xsd(xml schema defintion):
<item>
 <url>http://www.example.com</url>
 <title>Example Root</title>
<entitytype>5</entitytype>
 <owner>INTLOCK\Sigalit</owner>
 <version>1</version>
<template>Site</template>
<created>01/01/2007 00:00:00</created>
<modified>08/01/2007 10:37:35</modified>
 <items>
<item>
 <url>http://www.example.com/Item1.aspx</url>
 <title>Item1</title>
 <entitytype>9</entitytype>
<owner>INTLOCK\Sigalit</owner>
 <version>1</version>
 <template>Web Page</template>
<created>01/01/2007 00:00:00</created>
 <modified>08/01/2007 10:59:16</modified>
 <items />
</item>
 </items>
 </item>
OMTreeXmlSchema.xml
<?xml version=”1.0″ encoding=”UTF-8″?>
<xs:schema id=”OMTreeXmlSchema” elementFormDefault=”qualified”
xmlns:mstns=”OMTreeXmlSchema.xsd”
xmlns:xs=”http://www.w3.org/2001/XMLSchema“>
<xs:element name=”tree”>
 <xs:complexType>
<xs:sequence>
<xs:element name=”item” type=”XmlNode” />
</xs:sequence>
</xs:complexType>
</xs:element>
 <xs:complexType name=”XmlNode”>
<xs:all>
 <xs:element name=”url” type=”xs:string” />
<xs:element name=”title” type=”xs:string” />
<xs:element name=”entitytype” type=”xs:string” minOccurs=”0″ maxOccurs=”1″ />
<xs:element name=”owner” type=”xs:string” minOccurs=”0″ maxOccurs=”1″ />
<xs:element name=”version”  type=”xs:string” minOccurs=”0″ maxOccurs=”1″ />
<xs:element name=”template” type=”xs:string” minOccurs=”0″ maxOccurs=”1″ />
<xs:element name=”created”  type=”xs:string” minOccurs=”0″ maxOccurs=”1″ />
<xs:element name=”modified” type=”xs:string” minOccurs=”0″ maxOccurs=”1″ />
<xs:element name=”permissions” minOccurs=”0″ maxOccurs=”1″>
<xs:complexType>
<xs:sequence>
 <xs:element name=”user” type=”UserNode” minOccurs=”0″ maxOccurs=”unbounded”/>
<xs:element name=”group” type=”GroupNode” minOccurs=”0″ maxOccurs=”unbounded”/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name=”items” minOccurs=”0″ maxOccurs=”1″>
<xs:complexType>
 <xs:sequence>
 <xs:element name=”item” type=”XmlNode” minOccurs=”0″ maxOccurs=”unbounded” />
</xs:sequence>
 </xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name=”UserNode”>
<xs:sequence>
<xs:element name=”username” type=”xs:string” minOccurs=”1″ maxOccurs=”1″/>
<xs:element name=”permission” type=”PermissionEnum” minOccurs=”1″ maxOccurs=”1″/>
</xs:sequence>
</xs:complexType> <xs:complexType name=”GroupNode”>
 <xs:sequence>
<xs:element name=”groupname” type=”xs:string” minOccurs=”1″ maxOccurs=”1″/>
<xs:element name=”permission” type=”PermissionEnum” minOccurs=”1″ maxOccurs=”1″/>
</xs:sequence>
</xs:complexType> <xs:simpleType name=”PermissionEnum”>
<xs:restriction base=”xs:string”>
 <xs:enumeration value=”R”/>
<xs:enumeration value=”W”/>
</xs:restriction>
 </xs:simpleType>
</xs:schema>
check it out this XML Schema and run the
OMTreeXmlSchema.xml
You will get an XML Schema output.

Favicon

Hi friends today i am posting the blog which i have learned today ,it may be already known knowledge to someone,but it may be benefical if this information is not known to a single person,as that person can know about this now :)
What is favicon??
It is a website icon,or URL icon or bookmark icon which is of 16*16 or 32*32 size.
To personalize our website we use a Favicon,by adding that favicon helps out in the  branding and stickability of our website.
How to add favicon to our URL of the website?
<link href=”your url/favicon.ico” rel=”icon” type=”image/x-icon”/>
Example :
<html
<head>
<link rel=”icon” href=”favicon.ico”>
  <title>MyPage!</title>
</head>
<body>
hiii
……..
</body>
</html>
Example favicon I used:
http://www.shy.co.uk/favicon.ico I used this favicon.ico image and copied this image.
Saved the above html page .
Check out this example and try it once in Mozilla firefox(Browser).
Have a nice day :) enjoy :)

Google AdWords Expands Automated Rules, Includes Undo Option!

Hi friends today i read an article i just want to share with you all and knw this new thing :)
Automated Rules is a time saving feature that allows auto-scheduling of changes to your account, based on user-defined criteria. Based on feedbacks from previous users, Google Adwords, through their official blog, announced that they have made automated rules even more user-friendly and flexible. 
Previously, users were only allowed to set a maximum of 10 automated rules. Now Google, have increased this limit to 100 to ensure that the user is given enough freedom when it comes to trying out new rules.

Due to flexibility provided, it will be very exciting for users to try out new rules and see how they it works for them. For situations like creation of wrong automated rules or rules not reflecting the change you seek, AdWords have now added an option to undo the change by providing “Undo” button.

Pagination

Hi friends..today i am sharing an article about Pagination.
Google recognizing this is a hugely useful thing for SEO.
Pagination is a way of organizing or numbering a lot of data within a webpage to make it more manageable and user friendly.
Pagination is a tricky issue in SEO, and there are many competing ‘recommended solutions’ out there.
Google have now helped to clear the somewhat muddy waters with the consideration of “rel=next” and “rel=prev” link tags.
Pagination causes numerous problems for SEO because it creates content that isn’t particularly unique. If you have a page of products – we’ll call it Page 1 – and through going to the next page – Page 2 – all that changes is the items displayed, then the page title, intro text, meta title, meta description etc. normally stay the same.
Hence we face duplicate content.
What’s more, any half decent e-commerce or search functionality will have filters to allow you to narrow or reorder the products; as such the content on Page 1 may not be consistent. It could be sorted by price, or size. Different methods of actually achieving this product filtering means there are different considerations for SEO, however that’s not the main concern of this post.
We also face a problem of prioritising content. Search engines may decide to rank Page 2 ahead of Page 1 because it gained a link somehow, but this of course isn’t ideal. Also search engines seeing Page 1 and Page 2 may think “Page 1 is first, therefore the things on this page are more important”, and this could lead to the products on Page 2 being given less internal link strength.
Introducing rel=”next” and rel=”prev”
rel=”next” and rel=”prev” are actually an existing part of HTML4 and (lovely new) HTML5 standards, and they suggest to Google that there is a relationship between paginated web pages. By including rel=”next” and rel=”prev” markup in the of the pages within a series you’re asking Google to:
•Combine the link strength (and other indexing consideration) from the paginated web addresses into one
•Attribute this link strength to the primary / most relevant page and serve this page in preference to the rest of the series

SEO Clear Cut

SEOs don’t build websites; they build web presence.
SEOs don’t design websites; they make your website more usable.
SEOs don’t build links; they build relationships.

SEOs don’t socialize your content; they communicate your value.
SEOs don’t spam keywords in content to rank; they integrate key words into content to sell.
SEOs don’t sell your products/services; they help you attract buyers for you to sell to.
SEOs don’t drive traffic; they drive customers.
SEOs don’t create conversions; they make your website more conversion friendly.
SEOs don’t create your sales message; they improve it for your audience.
SEOs don’t write your business plan; they help fulfill it.
SEOs don’t manipulate Google’s results; they make Google’s results relevant

SocialMedia

Hi friends…this SocialMedia really changed the Lifestyle.
All are addicted to it……I am also included in it…
Morning starts with Facebook status update….which will end up Nightmare status update………
At morning,i dont know how many say Goodmorning to their parents,or spouse,or children or sibblings…but there will be a Facebook status update of Good MORNING :)
The Social Media became a part and parcel of our life….
Now a days people cant live without facebook,it has became an important and necessity thing in their life.
The people in this world are currently greatly addicted to this fact called as “Facebook”.
People nowadays are not even able to survive without Facebook.
The major gadget which people use to access Facebook is mobile phones.
But they feel that it would be great to have Facebook free of cost to any mobile phones.
Each and Every thing will be updated as a Staus message in Facebook,Which now became easier as Facebook is available in mobile phones also.
Recently Facebook launched” Facebook for Mobile” which was not completely free too.
So people out there got frustrated with Facebook.
But now here is a solution for them.
This is an official thing that was made by Facebook India.
This thing works even on the oldest mobile ever made (Even on Nokia 1100).
Facebook in combination with Fonetwish has launched this service which can be accessed by any Indian mobile which runs on one of the following carriers:
· Aircel
· Airtel
· Tata Docomo
· Idea.
Hmmm….
Oh its very difficult to study now. Facebook, Twitter, pinterest, Foursquare..how can i manage all while i have to study……..
Trying 2 study Java/Html/Css after a long time….but got interest in Social Media which is not allowing me to concentrate………
:P :) :D
But there is an Advantage….by Social Media..the RealtionShip will be stronger :) .We can Know each and every thing of our closed ones….
Even if we are far away from our closed one..we can be touch with them…and be in contact :)
And also we can build new realtionships….
So many love marriages…are through SocialMedia itself :P
so many couples are first became friends in Facebook,or orkut…like that…:)
Not only we can build personal relationships…we can also build Professional relationship…:)
Through linkedin we can manage professional identity…and so many got jobs through linkedin.
Now a days even to invite people for a party,marriages,or any thing like that……SocialMedia is so Usefull….
Recently i to used…the Application of facebook to invite my friends,relatives,and my colleague’s to an event.

Track your Train’s Location on the Indian Railways Website

Track your Train’s Location on the Indian Railways Website

Syed, Shabana Parvin April 13th, 2012
0
 
Report Abuse Add to Bookmarks Share
Hi friends…just read this information ……..:)
Now you can “Track your Train’s Location on the Indian Railways Website”
The Indian Railways operates nearly 11,000 trains everyday and you can use their website – trainenquiry.com – to know the current running status of any train. You can either enter the the name of the train, or the train number if you remember it, and the system will tell you whether that particular train is delayed or running on time.
That’s good to know but where exactly is your train?
CRIS, the IT wing of Indian Railways, is beta testing an improved and clutter-free version of the Train Enquiry website that is far more useful than the existing one. The new website will not only provide the running status of trains but will also help you track the exact location of trains across the country.
There are plenty of new features to appreciate about the new website. You no longer have to remember train numbers – just enter any two station names (like Delhi to Hyderabad) and it will bring all the trains available on that route. The Indian Railways website is using AJAX probably for the first time and thus you get search results as you type which is very handy.
Once you spot your train in the search results, you can learn about the train’s departure time at the previous two stations that the train has crossed, how far are the next two stations on the route and what’s the expected time of arrival at these stops. All these details will help you better plan your visit to the station.
The new website should go live in the next few weeks but if you would like to try it right now, go trainenquiry.com/searchtrain.aspx and choose the New Look option. It’s still in beta so you may encounter a few bugs but great effort overall.
The website is not exactly mobile-friendly at this time but you get the details on a mobile as well. Also, I think it would be more useful if the same information could be visually presented on a Google Map.

Is my browser leaking?

Hi,
Check this, it may be useful for you guys.
JavaScript is a powerful scripting language used to add dynamic content to Web pages. It is especially beneficial for everyday tasks such as password validation and creating dynamic menu components. While JavaScript is easy to learn and write, it is prone to memory leaks in certain browsers. In this introductory article we explain what causes memory leaks in JavaScript, demonstrate some of the common memory leak patterns to watch out for, and show you how to work around them.
Is my browser leaking?
Internet Explorer and Mozilla Firefox are the two Web browsers most commonly associated with memory leaks in JavaScript. The culprit in both browsers is the component object model used to manage DOM objects. Both the native Windows COM and Mozilla’s XPCOM use reference-counting garbage collection for memory allocation and retrieval. Reference counting is not always compatible with the mark-and-sweep garbage collection used for JavaScript. This article focuses on ways to work around memory leaks in JavaScript code. See Resources to learn more about COM layer memory handling in Firefox and IE.
Memory leaks in JavaScript
JavaScript is a garbage collected language, meaning that memory is allocated to objects upon their creation and reclaimed by the browser when there are no more references to them. While there is nothing wrong with JavaScript’s garbage collection mechanism, it is at odds with the way some browsers handle the allocation and recovery of memory for DOM objects.
Internet Explorer and Mozilla Firefox are two browsers that use reference counting to handle memory for DOM objects. In a reference counting system, each object referenced maintains a count of how many objects are referencing it. If the count becomes zero, the object is destroyed and the memory is returned to the heap. Although this solution is generally very efficient, it has a blind spot when it comes to circular (or cyclic) references.
What’s wrong with circular references?
A circular reference is formed when two objects reference each other, giving each object a reference count of 1. In a purely garbage collected system, a circular reference is not a problem: If neither of the objects involved is referenced by any other object, then both are garbage collected. In a reference counting system, however, neither of the objects can be destroyed, because the reference count never reaches zero. In a hybrid system, where both garbage collection and reference counting are being used, leaks occur because the system fails to identify a circular reference. In this case, neither the DOM object nor the JavaScript object is destroyed. Listing 1 shows a circular reference between a JavaScript object and a DOM object.
Listing 1. A circular reference resulting in a memory leak
document.write(“Circular references between JavaScript and DOM!”);
var obj;
window.onload = function(){
obj=document.getElementById(“DivElement”);
document.getElementById(“DivElement”).expandoProperty=obj;
obj.bigString=new Array(1000).join(new Array(2000).join(“XXXXX”));
};
Div Element
As you can see in the above listing, the JavaScript object obj has a reference to the DOM object represented by DivElement. The DOM object, in turn, has a reference to the JavaScript object through the expandoProperty. A circular reference exists between the JavaScript object and the DOM object. Because DOM objects are managed through reference counting, neither object will ever be destroyed.
Another memory leak pattern
In Listing 2 a circular reference is created by calling the external function myFunction. Once again the circular reference between a JavaScript object and a DOM object will eventually lead to a memory leak.
Listing 2. A memory leak caused by calling an external function
document.write(“Circular references between JavaScript and DOM!”);
function myFunction(element)
{
this.elementReference = element;
// This code forms a circular reference here
//by DOM–>JS–>DOM
element.expandoProperty = this;
}
function Leak() {
//This code will leak
new myFunction(document.getElementById(“myDiv”));
}
As these two code samples show, circular references are easy to create. They also tend to crop up quite a bit in one of JavaScript’s most convenient programming constructs: closures.
Closures in JavaScript
One of JavaScript’s strengths is that it allows functions to be nested within other functions. A nested, or inner, function can inherit the arguments and variables of its outer function, and is private to that function. Listing 3 is an example of an inner function.
Listing 3. An inner function
function parentFunction(paramA)
{
var a = paramA;
function childFunction()
{
return a + 2;
}
return childFunction();
}
JavaScript developers use inner functions to integrate small utility functions within other functions. As you can see in Listing 3, the inner function childFunction has access to the variables of the outer parentFunction. When an inner function gains and uses access to its outer function’s variables it is known as a closure.
Learning about closures
Consider the code snippet shown in Listing 4.
Listing 4. A simple closure
document.write(“Closure Demo!!”);
window.onload=
function closureDemoParentFunction(paramA)
{
var a = paramA;
return function closureDemoInnerFunction (paramB)
{
alert( a +” “+ paramB);
};
};
var x = closureDemoParentFunction(“outer x”);
x(“inner x”);
In the above listing closureDemoInnerFunction is the inner function defined within the parent function closureDemoParentFunction. When a call is made to closureDemoParentFunction with a parameter of outer x, the outer function variable a is assigned the value outer x. The function returns with a pointer to the inner function closureDemoInnerFunction, which is contained in the variable x.
It is important to note that the local variable a of the outer function closureDemoParentFunction will exist even after the outer function has returned. This is different from programming languages such as C/C++, where local variables no longer exist once a function has returned. In JavaScript, the moment closureDemoParentFunction is called, a scope object with property a is created. This property contains the value of paramA, also known as “outer x”. Similarly, when the closureDemoParentFunction returns, it will return the inner function closureDemoInnerFunction, which is contained in the variable x.
Because the inner function holds a reference to the outer function’s variables, the scope object with property a will not be garbage collected. When a call is made on x with a parameter value of inner x — that is, x(“inner x”) — an alert showing “outer x innerx” will pop up.
Listing 4 is a very simple illustration of a JavaScript closure. Closures are powerful because they enable inner functions to retain access to an outer function’s variables even after the outer function has returned. Unfortunately, closures are excellent at hiding circular references between JavaScript objects and DOM objects.
Closures and circular references
In Listing 5 you see a closure in which a JavaScript object (obj) contains a reference to a DOM object (referenced by the id “element”). The DOM element, in turn, has a reference to the JavaScript obj. The resulting circular reference between the JavaScript object and the DOM object causes a memory leak.
Listing 5. Event handling memory leak pattern
document.write(“Program to illustrate memory leak via closure”);
window.onload=function outerFunction(){
var obj = document.getElementById(“element”);
obj.onclick=function innerFunction(){
alert(“Hi! I will leak”);
};
obj.bigString=new Array(1000).join(new Array(2000).join(“XXXXX”));
// This is used to make the leak significant
};

Avoiding memory leaks
The upside of memory leaks in JavaScript is that you can avoid them. When you have identified the patterns that can lead to circular references, as we’ve done in the previous sections, you can begin to work around them. We’ll use the above event-handling memory leak pattern to demonstrate three ways to work around a known memory leak.
One solution to the memory leak in Listing 5 is to make the JavaScript object obj null, thus explicitly breaking the circular reference, as shown in Listing 6.
Listing 6. Break the circular reference
document.write(“Avoiding memory leak via closure by breaking the circular
reference”);
window.onload=function outerFunction(){
var obj = document.getElementById(“element”);
obj.onclick=function innerFunction()
{
alert(“Hi! I have avoided the leak”);
// Some logic here
};
obj.bigString=new Array(1000).join(new Array(2000).join(“XXXXX”));
obj = null; //This breaks the circular reference
};

In Listing 7 you avoid the circular reference between the JavaScript object and the DOM object by adding another closure.
Listing 7. Add another closure
document.write(“Avoiding a memory leak by adding another closure”);
window.onload=function outerFunction(){
var anotherObj = function innerFunction()
{
// Some logic here
alert(“Hi! I have avoided the leak”);
};
(function anotherInnerFunction(){
var obj = document.getElementById(“element”);
obj.onclick=anotherObj })();
};

In Listing 8 you avoid the closure itself by adding another function, thereby preventing the leak.
Listing 8. Avoid the closure altogether
document.write(“Avoid leaks by avoiding closures!”);
window.onload=function()
{
var obj = document.getElementById(“element”);
obj.onclick = doesNotLeak;
}
function doesNotLeak()
{
//Your Logic here
alert(“Hi! I have avoided the leak”);
}

In conclusion
This article has explained how circular references can lead to memory leaks in JavaScript, particularly when combined with closures. You’ve seen several common memory leak patterns involving circular references and some easy ways to work around them. See Resources to learn more about the topics discussed in this introductory article.

A first look at Endeca Latitude

Hi friends…it is so intresting article..i wanna a share with you all…
Big Data is getting the IT industry very excited. But I see a lot less excitement when it comes to business people. Part of the problem is that Big Data really does not mean a lot to most people and, secondly, when most discussions centre on Hadoop clusters and MapReduce functions I would guess that most people outside of IT have switched off already.
I am also of the opinion that far too much of this seems to just be technology for the sake of technology, that is partly because many of the big vendors do not have much above the level of a basic capacity to sell big lumps of tin and wire but do not want to be seen as laggards.
But if you get past the techie outer shell, Big Data should be something that is on the agenda of everyone. Big Data is about branching out from the traditional IT world of structured data stored and accessed by rigid key structures to include all forms of data-so that’s text, speech, and video-in fact if you can communicate it electronically it can be captured and analysed.
The reason that this is important is that it should allow companies to really start to understand what their customers really think, want and are prepared to pay for. The killer app is a precise vertical market customer and market behaviour understanding, really knowing what is good behaviour and bad and why it is occurring. But to do that you have to be able to find what you are looking for.
So far most of what I have read suggests that you will use Search, just like going into Google, Yahoo or Bing to find areas of interest in the unstructured data, and then having found an area of interest swap to standard BI tools to drill down and explore the structured data. That seems to me to miss the point. What we need is simple intuitive interfaces which everyone can use, i.e. search looking at all of the data-structured and unstructured together-and allowing it to be explored together. But how could you do that?
I have now seen Endeca Latitude and for the first time I have seen something that really hits the mark. The user can put in a search term and it will bring back all of the references in the structured and unstructured data that are related to it. How it does that is by in the background they have an index layer that has worked out what is related to what, in what sequence, with what frequency etc.
They call this Agile BI, as it is flexible, responsive and very intuitive; a somewhat misleading term but you have to start somewhere to describe something that is quite radically different, and unbelievably effective.
The real key to the agility is that search terms do not have to be a precise match. You insert a term, as used in common parlance, and the software will find all of the links, reflecting not a structured key sequence but their real life occurrences, so it’s fuzzy matching. Suddenly you can imagine marketers, call centre operatives, line of business mangers suddenly being able to find the gems of information held in the mountains of corporate data that have previously been hidden from view by the limitations of traditional BI and its use of highly structured keys and schemas to address something which is far less structured in the real world.
I am not going to pretend that Endeca is yet a complete solution, I believe that it can handle quite large volumes but not the enormous ones that will soon be commonplace, but it is the nearest thing yet to getting there

Brief On Mojito

Hi friends i like to share the new thing i learned today.
Mojito is the JavaScript library implementing Cocktails, a JavaScript-based on-line/off-line, multi-device, hosted application platform.
JavaScript frameworks are nothing new. We are working with a number of them out there. However, Mojito brings something new and unique to the table.
1. Mojito is all JavaScript.
2. Mojito is a true MVC framework.
3. But the best part of Mojito is its ability to “blur” the client/server boundary, to let you write code that runs on the client, or the server. Or both.

9 Principles For Great Branding By Design

Hi friends We all know great design has a critical role to play in building a great brand. But how do we go about making that happen?
The three top designers about that very question: Robert Brunner, founder of the design shop Ammunition and author of Do You Matter: How Great Design Will Make People Love Your Company; Joe Doucet, founder of Joe Doucet Studio and David Hill, vice president of design at Lenovo and author of the Design Matters blog.
Through these conversations, it became clear that the link between design and branding is important, and that having a top design team is to crucial to having a winning brand.
1.Branding and design are, to a large extent, inseparable. “A brand is not your logo or ID system,” says Brunner. “It’s a gut feeling people have about you. When two or more people have the same feeling, you have a brand. You get that feeling via smart design, which creates the experiences people have with the brand. Everything you do creates the brand experience, ergo design IS your brand.”
2.If design is the brand, stop thinking of branding and design as distinct disciplines. “It’s all about integrating design and brand,” says Doucet. “We need to cease thinking of them as different disciplines. The essence of the Apple brand comes through its design. Take the logo off a BMW and you still know it’s a BMW.”
3.Brands need to create an emotional relationship with people. “We are all emotional beings and we have emotional relationships with brands we trust,” says Brunner. “Designers need to make that happen. A designer must take the values and assets of a company and transform them in a special way that connects with people emotionally.”
4.Designers need to “get” the essence of the brand. “For designers to build a great brand, they have to understand it,” Hill points out. “You need to understand its history, its values, and what it means to people. Can you imagine designing the latent Jeep without understanding the brand archetype of what it means for a product to be a Jeep?”
5.Design needs to be strategic from the outset. “For design to have a major impact, it’s got to get involved at the strategic level,” said Hill. “It can’t be an afterthought or superficial trappings to be put on post product creation. Samsung’s brand became powerful only after they put a Chief Design Officer in place and made it a priority for the company.”
6.Integrate design early in the process to drive innovation and create solutions. “Good designers approach design as an opportunity to ask questions,” says Doucet. “Solution generation starts by questioning initial assumptions. Rather than ask myself ‘How should I design Widget X?’ I need to be asking ‘Do we really need Widget X or is there a better solution to this customer problem? So a designer needs be there at the beginning and be connected to the decision-makers. For example, at Braun, Dieter Rams sat across from the owner of the company.”
7.Don’t overdesign. “With the increasing emphasis on design in the world today, it’s important to avoid the ‘over-designed syndrome,’” says Hill. “A simple, well-thought-through, authentic design is often the best. Everything doesn’t need to be redesigned; sometimes what we have in hand is better than what we seek. It’s not all about being different; it’s about being better. If Levi Strauss wanted me to redesign the patch on the back of their jeans, I would look in their archives for the original.”
8.Use design to continually reinvent the brand. “Some folks think they know branding,” says Doucet. “Figured it out long ago. ‘Hi. I’m someone you’ll like. You’ll know it’s me because I always wear a red polo shirt (pantone 185 to be exact) with blue pants and a yellow belt.’ You can’t think that way today. Brands need to allow themselves to constantly update, and be much more fluid. Look at Google; they morph their logo for special occasions. Constant change is a big part of who they are.”
9.Use design to make a difference. “Design can make a difference in how we live,” says Brunner. “Take sustainability. A lot of what is done in that area is ‘making bad, better.’ We’re taking wasteful things and seeing how we can make them not so bad. We need to start thinking about how we can use our design tools to encourage people to change. You do that by making ‘doing better’ also be fun, interesting and (importantly) the path of least resistance. And you do it in an encouraging, not controlling, way. Design needs to do that in order to reach a larger audience than just the small group that is socially driven.
While these steps may require a new way of thinking about design for some, they’re key steps to the path for those who want to build a great brand and make life better for those who experience them.

7 Ways to Code Faster HTML CSS

1.) ZEN CODING

Zen Coding is an editor plugin for high-speed HTML, XML, XSL (or any other structured code format) coding and editing. The core of this plugin is a powerful abbreviation engine which allows you to expand expressions—similar to CSS selectors—into HTML code.
Best learn resource: http://coding.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/

2.) Halm

Haml is a markup language that’s used to cleanly and simply describe the HTML of any web document without the use of inline code. Haml functions as a replacement for inline page templating systems such as PHP, ASP, and ERB, the templating language used in most Ruby on Rails applications.
Best learn resource: http://haml-lang.com/tutorial.html

3.) Sparkup

You can write HTML in a CSS-like syntax, and have Sparkup handle the expansion to full HTML code. It is meant to help you write long HTML blocks in your text editor by letting you type less characters than needed.
Best learn resource: http://thechangelog.com/post/1421721495/sparkup-a-parser-for-a-condensed-html-format

CSS

4.) LESS

The dynamic stylesheet language. LESS extends CSS with dynamic behavior such as variables, mixins, operations and functions.
Best learn resource: http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/get-into-less-the-programmable-stylesheet-language/

5.) SASS

Sass is a meta-language on top of CSS that’s used to describe the style of a document cleanly and structurally, with more power than flat CSS allows.
Best learn resource: http://net.tutsplus.com/tutorials/other/mastering-sass-lesson-1/

6.) Prefixr

CSS Prefixr is a CSS pre-processor tool, that generates the cross browser css from given codes. Forget about writing multiple browser prefixes and start using Prefixr.

7.) SpriteCow

Sprite Cow helps you get the background-position, width and height of sprites within a spritesheet as a nice bit of copyable css.

Microsoft Metro UI

  • Metro is a Design language.
  • Metro is an internal code name for a typography-based design language created by Microsoft, originally for use in Windows Phone 7.
  • This design language is named as Metro because it’s Modern and Clean. It’s Fast and in Motion. It’s about Content and Typography and It’s entirely Authentic.
  •  Early uses of the Metro principles, such as the typography, began as early as Microsoft Encarta 95 and MSN 2.0, and later evolved into products such as Windows Media Center and Zune.
  • Later the principles of Metro were included in Microsoft’s mobile operating system, Windows Phone, the Xbox 360 dashboard update, and Windows 8.
  • A specially-made version of Microsoft’s Segoe font family, Segoe WP, is used as the main font family for all typographical elements. It was confirmed by Microsoft at Computex that Windows 8, the successor to Windows 7, takes inspiration from Metro.
  • Microsoft also added the Metro design principles to other products and services, like the Xbox 360 and Windows Live, in order to create a unified and distinctive look across its consumer products and services.

Skills of a successful front-end web developer

What are the transferable skills and characteristics someone could look for in a potential developer?
To put it another way, if you have a group of 10 people how would you narrow down your choices?
There are many roles recognized in the community, yet for the purposes of this discussion,
we are grouping them into two roles:Back-end developer, and Front-end developer.

Front end developer


Previous experience

              Understands key server-side web development concepts through experiences such as:
  1. Interpreting graphic visual or interaction designs in HTML, CSS and Javascript.
  2. Creating visually appealing web pages or interfaces.
  3. Creating, editing or modifying templates for a CMS or web development framework.
  4. Programming interaction with JavaScript and/or a library such as jQuery, YUI or Prototype.
  5. Testing cross-browser, cross-platform, and/or cross-device compatibility for inconsistencies.
  6. Testing for compliance to specified standards such as accessibility standards in the clients region or domain.
  7. Conducting observational user testing, or reviewing designs against usability heuristics.

Domain specific knowledge or transferable skills

Experience with web development languages of HTML, CSS and JavaScript/jQuery.
  • HTML

  1. Familiarity of HTML syntax for multiple specifications, including HTML 5.
  2. Knowledge of the semantic meaning of all HTML elements.
  3. Familiarity with the semantic markup for display of lists, tabular data, forms, articles, etc.
  4. Knowledge of markup used for layout such as dividers.
  5. Knowledge at the level to be able to hand-code markup.
  6. Including media and images.

  • CSS

  1. Specifying different CSS for various media, devices and displays.
  2. Best practices in CSS file organization and structure.
  3. Methods for including CSS inline, internal and external via linked style sheets.
  4. How to define, combine and group CSS selectors for HTML elements, ID, classes, pseudo classes, child or sibling.
  5. Syntax of CSS declarations, properties and attributes.
  6. CSS box model and methods for CSS positioning, absolute and relative.
  7. Knowledge of properties and attributes to control the display.
  8. Familiarity with differences in CSS 2 and CSS 3.

  • Best practices

  1. Methods to ensure browser & device compatibility
  2. Methods for degrading gracefully for older browsers and displays.
  3. Methods to ensure accessibility.
  4. File compression techniques for improving speed.

  • JavaScript

  1. Knowledge of the operators, variables, datatypes, objects, properties and methods.
  2. Familiarity with control structures such as objects, functions, conditional statements, arrays, loops and expressions.
  3. Forms and regular expression validation and submitting data.
  4. Knowledge of how to apply logical operators and conditional statements.
  5. Knowledge of the DOM HTML objects and their properties.

  • Event handling.

  1. Creating and controlling windows and dialogs.
  2. Processes for troubleshooting and debugging
  3. Familiarity with development and debugging tools for cross-browser issues.

  • jQuery

  1. Knowledge of how to employ the jQuery library for visual effects, event handling, and document manipulation.

Reducing JavaScript Code Using jsRender Templates in HTML5 Applications

Hi friends this is the new thing i found today so i like to share with you all…..
 A new script has been released called jsRender that will ultimately replace jQuery Templates – at least that’s the current plan.
Nearly every language out there uses templates in some manner to minimize the amount of code that has to be written. By using templates you can define a template structure once and use it to generate code, HTML or other formats. If you’ve created ASP.NET applications then you’re aware of how powerful and productive templates are when it comes to generating HTML output. However, what if you want to use templates on the client-side to generate HTML rather than writing a lot of JavaScript to manipulate the DOM?
Although templates have been available in jQuery for quite awhile through various plug-ins, the jsRender template framework provides a new solution that doesn’t use CSS in strange ways or require a lot of knowledge about a template language. By using it you can define HTML templates in web pages and use them to render HTML output dynamically at runtime. You can download the jsRender script along with samples from https://github.com/BorisMoore/jsrender.

Defining a Template Block

You can use client-side templates by referencing the jsRender script mentioned above and then defining a <script> block in your page with a type of text/x-jquery-tmpl as shown next:
<script id="OrderSummaryTemplate" type="text/x-jquery-tmpl">
    <!-- Template goes here –>
</script>

Once the script tag is defined you can place template code inside of it. Any HTML you add into the template is output automatically once the template is rendered. Of course, adding static HTML doesn’t accomplish much so jsRender provides several tags that can be placed inside of a template to define data that should be output, perform conditional logic, iterate through items, render nested templates, plus more. The key template tags available with jsRender are shown next:
Template TagExampleDescription
{{=fieldNameOrExpression}}
{{=DeliveryFee}}
Used to define data values that should be rendered in the template. Evaluates the specified property on the current data item and encodes the value. 
{{=fieldNameOrExpression!}}
{{=Comments!}}
Used to define HTML markup strings that should be rendered by the template (notice that a ! character is placed at the end of the string). Evaluates the specified field on the current data item and doesn’t encode the value. 
{{#if condition}}
{{#if DeliveryFee > 0}}
   {{=DeliveryFee}} added to your order.
{{/if}}
Used for conditional insertion of content. 
{{else}}
{{#if MainItems.length===0}}
    <tr>
        <td>No items selected</td>
    </tr>
{{else}}
    <tr>
        <td>Ordered items!</td>
    </tr>  �
{{/if}}
Used to add additional conditional logic into jsRender templates.
{{#each}}
{{#each MainItems}}
    <tr>
        <td>
            {{=mi.NumberOrdered}} ordered
            at ${{=mi.Price}} per item
        </td>
    </tr>
{{/each}}
Used to iterate over a data array and render the content for each data item.
{{#each tmpl=”#NestedTemplateID”}}
<script>
    {{#each Movies tmpl="#titleTemplate"}}
</script>
 
<script>
    <tr>
        <td>{{=Name}}</td>
    </tr>
</script>
Used for composition of templates. Renders one or more nested template items within the rendered output of the parent template.

Rendering a Template

Once a template is defined using a <script> block you can use jsRender’s render() function to convert data into HTML based upon the template. This is done by identifying the target element that will host the content, calling its html() function (when using jQuery). and then passing the HTML that’s generated by calling the render() function. The render() function accepts the data that the template will use to generate HTML content. An example of putting all of this together is shown next. You’ll see that the OrderSummaryOutput element is located in the DOM using a jQuery selector and that its html() function is passed the output generated by a jsRender template.
$("#OrderSummaryOutput").html($("#OrderSummaryTemplate").render(data));

The data can be created locally from an object literal or retrieved from a remote service call as JSON as shown nextt:
$.ajax({
    dataType: 'jsonp',
    url: moviesServiceUrl,
    jsonp: '$callback',
    success: showMovies
});
 
// Within the callback, use .tmpl() to render the data.
function showMovies(data)
{
    // Render the template with the "movies" data and insert
    // the rendered HTML under the 'movieList' element
    $("#movieList").html($("#moviesTemplate").render(data));
}

jsRender in Action

A sample application that I created to demonstrate jsRender in action can be download (it’s part of the sample code available with our jQuery Web Programming training course). The sample app is an ASP.NET MVC 3 project named “Order Up” that leverages jQuery heavily and uses jsRender to display order details.
The template used to generated the Totals, Delivery Information, Items Ordered and Accessories Ordered sections is shown next:
<script id="OrderSummaryTemplate" type="text/x-jquery-tmpl">
    <table style="width:100%;">
        <tbody>            
            <tr>
                <td>Totals:</td>                   
            </tr>                   
            <tr>
                <td style="font-size:12pt;">
                    <table style="width:400px;">
                        <tr>
                            <td style="width:50%;">Sub Total:</td>
                            <td>$<span>{{=FinalSubTotal}}</span></td>
                        </tr>
                        <tr>
                            <td style="width:50%;">Sales Tax:</td>
                            <td>$<span>{{=FinalSalesTax }}</span></td>
                        </tr>
                        {{#if DeliveryFee > 0}}
                            <tr>
                                <td style="width:50%;">Delivery Fee:</td>
                                <td>$<span>{{=DeliveryFee }}</span></td>
                            </tr>
                        {{/if}}
                        <tr>
                            <td style="width:50%;">Admin Fee:</td>
                            <td>$<span>{{=AdminFee }}</span></td>
                        </tr>
                        <tr style="border-top:1px solid black;">
                            <td style="width:50%;font-weight:bold;">Total:</td>
                            <td>$<span>{{=FinalTotal }}</span></td>
                        </tr>  
                        <tr>
                            <td colspan="2">&nbsp;</td>
                        </tr>
                        <tr>
                            <td colspan="2">Will be charged to your credit card ending with {{=CreditCard }}</td>
                        </tr>                    
                    </table>                       
                </td>
            </tr>
            <tr>
                <td>&nbsp;</td>
            </tr>
            <tr>
                <td>Delivery Information</td>                   
            </tr>
            <tr>
                <td>
                    <table style="width:500px;">
                        <tr>
                            <td style="width:25%;">Deliver To:</td>
                            <td>{{=DeliveryName}}</td>
                        </tr>
                        <tr>
                            <td style="width:25%;">Address:</td>
                            <td>{{=DeliveryAddress}}</td>
                        </tr>
                        <tr>
                            <td style="width:25%;">Date and Time:</td>
                            <td>{{=DeliveryDate}} from {{=DeliveryTime}}</td>
                        </tr>                       
                    </table>                        
                    </td>
            </tr>
            <tr>
                <td>&nbsp;</td>
            </tr>                   
            <tr>
                <td>Items Ordered</td>
            </tr>
            {{#if MainItems.length === 0}}
                <tr>
                    <td>No items selected</td>
                </tr>
            {{else}}
                {{#each MainItems tmpl="#ItemsTemplate"}}
            {{/if}}
            <tr>
                <td>&nbsp;</td>
            </tr>  
            <tr>
                <td>Accessories Ordered</td>
            </tr>
            {{#if AccessoryItems.length === 0}}
                <tr>
                    <td>No accessories selected</td>
                </tr>
            {{else}}
                {{#each AccessoryItems tmpl="#ItemsTemplate"}}
            {{/if}}
            <tr>
                <td>&nbsp;</td>
            </tr>                         
        </tbody>
    </table>   
</script>
 
<script id="ItemsTemplate" type="text/x-jquery-tmpl">
    <tr>
        <td>
            {{=Name}} - {{=NumberOrdered}} ordered at $ {{=Price}} per item
        </td>
    </tr>
</script>

The template is rendered to a div with an ID of OrderSummaryOutput using the following code.  The code first creates a JSON object by retrieving data from controls in a checkout wizard and then calls the the render() function provided by jsRender.
function LoadApprovalDiv() {
    var subTotal = parseFloat($('#SubTotal').text());
    $('#ClientSubTotal').val(subTotal.toFixed(2));
    var salesTaxRate = parseFloat($('#SalesTaxRate').val()) / 100;
    var salesTaxAmount = (subTotal * salesTaxRate) * .9;
    var deliveryFee = parseFloat($('#DeliveryFee').val());
    var adminFee = ((subTotal + salesTaxAmount + deliveryFee) * .05);
    var total = (Round(subTotal) + Round(salesTaxAmount) + Round(deliveryFee) +
                 Round(adminFee));
    $('#ClientTotal').val(total);
    var deliveryAddress = $('#Delivery_Street').val();
    //See if they entered a suite
    if ($('#Delivery_Suite').val() != '') deliveryAddress += ', Suite ' + $('#Delivery_Suite').val();
    deliveryAddress += ' ' + $('#Delivery_City').val() + ' ' + $('#Delivery_StateID option:selected').text() + ' ' +
                       $('#Delivery_Zip').val();
    var creditCard = $('#Payment_CreditCardNumber').val();
    var abbrCreditCard = '*' + creditCard.substring(creditCard.length - 5);
 
    var data= {
                   'FinalSubTotal'  : subTotal.toFixed(2),
                   'FinalSalesTax'  : salesTaxAmount.toFixed(2),
                   'FinalTotal'     : total.toFixed(2),
                   'DeliveryFee'    : deliveryFee.toFixed(2),
                   'AdminFee'       : adminFee.toFixed(2),
                   'DeliveryName'   : $('#Delivery_Name').val(),
                   'DeliveryAddress': deliveryAddress,
                   'CreditCard'     : abbrCreditCard,
                   'DeliveryDate'   : $('#Delivery_DeliveryDate').val(),
                   'DeliveryTime'   : $('#Delivery_DeliveryTime option:selected').text(),
                   'MainItems'      : GenerateData('Main'),
                   'AccessoryItems' : GenerateData('Accessory')
               };
 
    //jQuery template example
    $("#OrderSummaryOutput").html($("#OrderSummaryTemplate").render(data));
}

If you’re working with dynamic web applications that leverage jQuery and AJAX you’ll find that jsRender can significantly increase your productivity and eliminate a lot of code that you’d normally have to write. Although jsRender is still new it’s definitely worth looking into more.