Blog » jQuery 1.1.4: Faster, More Tests, Ready for 1.2
Posted August 24th, 2007 by John ResigWe’re pleased to announce the latest release of jQuery: jQuery 1.1.4. Barring any horrible mistakes, this release will be the last of the 1.1.x branch - leading us up to the release of jQuery 1.2 in September.
You can download the release from the jQuery Google Code page:
Download:
Improvements
A number of improvements have gone into this release, in addition to all of the normal bug fixes.
Any Name jQuery
jQuery has taken a big step to become the first major JavaScript library completely capable of renaming itself. Previously, functionality was provided to rename the oft-used ‘$’ shortcut for ‘jQuery’ - but now you can also rename both ‘$’ and ‘jQuery’. This allows for two fantastic results:
- You can now include multiple versions of jQuery, simultaneously, on the same page.
- You can now embed jQuery into the namespaces of other objects and libraries, for example:
// With the Dojo Toolkit dojo.jquery = jQuery.noConflict(true); dojo.jquery("#elem div").slideDown("slow"); // or with Yahoo UI YAHOO.query = jQuery.noConflict(true); YAHOO.query("span.hidden").removeClass("hidden");
Speed Improvements
What would a release be without some speed improvements? We took the opportunity to step beyond any previously-released speed test suites and improve the speed of the three most commonly used portions of jQuery: ID selectors, tag name selectors, and each() loops. It’s absolutely critical that each of these items are made as fast as possible, as they have the possibility of being re-used endlessly, and repeatedly.
Here’s the test suite used to analyze the speed of the three changes.
$(”#id”) Improvements
| Browser | jQuery 1.1.3 | jQuery 1.1.4 | % Improvement |
|---|---|---|---|
| IE 6 | 651ms | 70ms | 830% |
| Firefox 2 | 1355ms | 27ms | 4919% |
| Safari 3 | 101ms | 14ms | 620% |
| Opera 9 | 270ms | 62ms | 335% |
| Average improvement: | 1676% | ||
$(”elem”) Improvements
| Browser | jQuery 1.1.3 | jQuery 1.1.4 | % Improvement |
|---|---|---|---|
| IE 6 | 661ms | 451ms | 47% |
| Firefox 2 | 1717ms | 143ms | 1100% |
| Safari 3 | 99ms | 83ms | 19% |
| Opera 9 | 226ms | 198ms | 14% |
| Average improvement: | 295% | ||
.each() Improvements
| Browser | jQuery 1.1.3 | jQuery 1.1.4 | % Improvement |
|---|---|---|---|
| IE 6 | 200ms | 30ms | 567% |
| Firefox 2 | 468ms | 29ms | 1514% |
| Safari 3 | 17ms | 11ms | 54% |
| Opera 9 | 45ms | 25ms | 80% |
| Average improvement: | 554% | ||
Test Suite Overhaul
This is very big news - and should be especially so to most developers out there. The jQuery test suite has been completely re-tooled and improved from the ground up for stability. A brand new swath of Animation and Ajax tests have been integrated bringing jQuery’s total test count to over 800 tests!
Additionally, the test suite completely passes with no errors in all the major browsers that we support: Firefox 2, Safari 3, Internet Explorer 6, and Opera 9 (Safari 2 and IE 7 not shown for brevity). Proof:
In the future, we’re working to improve our coverage of the Event, Attribute, and CSS portions of jQuery - undoubtedly bringing us to over 1000 tests very soon.
Additionally, it should be noted that the jQuery test suite is now embedded in the Mozilla test suite - running against every commit of the upcoming Firefox 3 release. You can feel safe knowing that in the newest release of Firefox, everything will just keep working, as you would expect it to.
Bug Fixes
53 tickets have been closed for this release. You can read the full details on the the bug tracker (this includes fixes that went in to jQuery 1.1.3.1).
A bunch of large issues were resolved, including issues related to HTML script evaluation, Safari CSS Computed Style access, and Ajax settings manipulation.
New Functionality
A couple pieces of new functionality have been introduced. The first two of which, .slice() and :has(), are going to be a part of jQuery 1.2, but their existence is obligated by some deprecated functionality (see below). The new changes to extend() and noConflict() were put in order to be able to fix some long standing bugs in jQuery.
.slice()
You may recognize this method name from the .slice() method that exists on JavaScript arrays - you’re in luck because it behaves identically. This is a great method for chopping apart jQuery objects and getting to the elements inside of them. All of the following are valid ways to use the slice() method:
$("div").slice(0,1); // First div
$("div").slice(-1); // Last div
$("div").slice(1,-1); // All divs but the first and last
$("div").slice(1,3); // The second and third div
$("div").slice(7,8); // The eighth div
:has()
This new selector is a replacement for the current way of checking for elements inside of another element (div[p]). You can now use this selector just as you would that particular XPath selector, like so:
// All divs with a paragraph inside
$("div:has(p)")
// All anchors with an image inside
$("a:has(img)")
// All divs that have an anchor inside that have an image inside
$("div:has(a:has(img))")
Deep, recursive .extend()
This has been a frequently-requested addition to the jQuery .extend() method. This change allows you to deeply merge nested objects (as opposed to having them overwrite each other). This is best demonstrated through an example:
// Normal .extend()
jQuery.extend(
{ name: “John”, location: { city: “Boston” } },
{ last: “Resig”, location: { state: “MA” } }
);
// Result:
// => { name: “John”, last: “Resig”, location: { state: “MA” } }
// New Deep .extend()
jQuery.extend( true,
{ name: “John”, location: { city: “Boston” } },
{ last: “Resig”, location: { state: “MA” } }
);
// Result:
// => { name: “John”, last: “Resig”,
// location: { city: “Boston”, state: “MA” } }
.noConflict(true)
As described previously, this addition to .noConflict() allows you to completely rename both the ‘jQuery’ namespace and the ‘$’ shortcut, while also rolling back any changes those introductions may have done. You can use this new shortcut like so:
// Give jQuery a custom name:
var jq = jQuery.noConflict(true);
jq("#id div").hide();
// Both Fail - $ and jQuery have been renamed:
$("#id div").hide();
jQuery("#id div").hide();
This trick can also be used to push jQuery into an existing namespace, like so:
// Put jQuery in a namespace:
var obj = {};
obj.jq = jQuery.noConflict(true);
obj.jq("#id div").hide();
Deprecated Functionality
We are deprecating a number of methods in jQuery 1.1.4 in preparation for the API changes in the upcoming jQuery 1.2. Wherever possible, we’ve provided alternate methods for performing actions.
With jQuery 1.2, as with the jQuery 1.1 release, a backwards compatibility plugin will be provided. Thus, if you wish to continue using these particular techniques, you’ll be able to use that plugin and continue doing so.
Additionally, in order to handle the XPath changes another, separate, plugin will be released that will handle XPath selector functionality in jQuery. This plugin will be made available along with the jQuery 1.2 release.
Selectors
$(”div//p”) XPath Descendant Selector
Please use the CSS $(”div p”) selector instead. Or, when jQuery 1.2 is released, use the new XPath Plugin.
$(”div/p”) XPath Child Selector
Please use the CSS $(”div > p”) selector instead. Or, when jQuery 1.2 is released, use the new XPath Plugin.
$(”p/../div”) XPath Parent Selector
Please use the $(”p”).parent(”div”) selector instead. Or, when jQuery 1.2 is released, use the new XPath Plugin.
$(”div[p]”) XPath Contains Predicate Selector
Please use the new $(”div:has(p)”) selector instead. Or, when jQuery 1.2 is released, use the new XPath Plugin.
$(”a[@href]”) XPath Attribute Selector
Note: While this selector is being deprecated in this release, it will not be removed in jQuery 1.2. Come jQuery 1.2, it’ll be recommended that you use the CSS selector $(”a[href]”) instead. Or, when jQuery 1.2 is released, use the new XPath Plugin.
DOM Manipulation
$(”div”).clone(false)
Calling the clone method with an argument is being deprecated (the clone method, as a whole, is being kept). Instead of calling .clone(false) you should now do: .clone().empty() instead.
DOM Traversal
$(”div”).eq(0)
This method is being deprecated for the use of the new .slice() method (which works identically to an array’s slice method. You can duplicate .eq() like so:
$("div").slice(0,1);
Additionally, .eq(0) can be duplicated in the following ways:
$("div:eq(0)")
$("div:first")
$(”div”).lt(2)
This method is being deprecated for the use of the new .slice() method (which works identically to an array’s slice method. You can duplicate .lt() like so:
$("div").slice(0,2);
Additionally, .lt(2) can be duplicated in the following way:
$("div:lt(2)")
$(”div”).gt(2)
This method is being deprecated for the use of the new .slice() method (which works identically to an array’s slice method. You can duplicate .gt() like so:
$("div").slice(3);
Additionally, .gt(2) can be duplicated in the following way:
$("div:gt(2)")
Ajax
$(”#elem”).loadIfModified(”some.php”)
This convenience method is being removed in favor of the long form use of $.ajax():
$.ajax({
url: "some.php",
ifModified: true,
success: function(html){
$("#elem").html(html);
}
});
$.getIfModified(”some.php”)
This convenience method is being removed in favor of the long form use of $.ajax():
$.ajax({
url: "some.php",
ifModified: true
});
$.ajaxTimeout(3000)
This convenience method is being removed in favor of the long form use of the more-explicit $.ajaxSetup():
$.ajaxSetup({timeout: 3000});
$(…).evalScripts()
This method is no longer necessary in jQuery - all scripts included in HTML strings are automatically evaluated when injected into the document. No substitute method is needed.
As always, please let us know if you encounter any bugs in between jQuery 1.1.3.1 and jQuery 1.1.4. Thanks!

August 24th, 2007 at 4:29 am
Jquery 1.4 and IE6 seem to have Problems.
August 24th, 2007 at 4:34 am
Great work!
It work’s on Safari 3 win!
I like it.
Thank you!
August 24th, 2007 at 5:07 am
thank you very much for your hard work! wtg!
August 24th, 2007 at 5:26 am
There’s a mistake in the deprecations section:
$.ajaxSettings({timeout: 3000});
should be:
$.ajaxSetup({timeout: 3000});
August 24th, 2007 at 5:30 am
What about IE7? Is JQuery compatible with that one?
August 24th, 2007 at 5:31 am
Yes, IE7 works fine.
August 24th, 2007 at 5:44 am
What explains this impressive performance improvement ?
August 24th, 2007 at 5:47 am
Wonderful! Great! Looking forward to the upcoming 1.2 release!
By the way, the link to the jQuery test suite doesn’t work.
/Anders
August 24th, 2007 at 6:41 am
Not to pick straws, but with benchmark results so wildly varying, an average doesn’t make much sense.
$(”#id”) Improvements - 830%, 4919%, 620%, 335% - average 1676% - my estimate 725%
$(”elem”) Improvements - 47%, 1100%, 19%, 14% - average 295% - my estimate 33%
.each() Improvements - 567%, 1514%, 54%, 80% - average 554% - my estimate 323%
“My estimate” is the average excluding 25% top and 25% bottom results. Still, great improvement and gz to the dev team!
August 24th, 2007 at 6:50 am
[…] se acerca a una versión estable 1.2 muy esperada por los desarrolladores. [Descargar] Compártelo # « Logueando los errores nuestrosusuarios […]
August 24th, 2007 at 7:13 am
Awesome! Can’t wait till jQuery 1.2 & jQuery UI
What about Safari 2 though…?
August 24th, 2007 at 7:37 am
I can not find slide() method in jQuery 1.1.4 . I see the code, download the svn trunk branch, but any slide() method is found.
???
jQuery 1.1.4 works with all my current projects based in 1.1.2 and more fast, perfect!!
August 24th, 2007 at 7:43 am
[…] JQuery 1.1.4 (Librería javascript muy fácil de usar y con grandes capacidades)jquery.com/blog/2007/08/24/jquery-114-faster-more-tests-read… por sebasromano hace pocos segundos […]
August 24th, 2007 at 8:25 am
Is this a typo: $(”a[href]”) ? The documentation says that css attribute selectors should have @. I tried without it $(input[type=’text’]) and it didn’t work.
August 24th, 2007 at 10:06 am
@Martin:
You say that v1.1.4 and IE6 have problems. What are the problems you’re experiencing?
August 24th, 2007 at 10:14 am
@Shanon: Good catch, I’ll fix that in the post.
@Danny: That’s correct. a[href] is the correct CSS syntax for selecting anchors with an attribute of href. You’ll also note that this change isn’t being made until jQuery 1.2 AND that you’ll still be able to use the @, if you’d like. There’s no need to worry about it now.
@Everyone: Yes, we also test in Safari 2 and IE 7, they just weren’t mentioned for brevity.
August 24th, 2007 at 10:42 am
jQuery 1.1.4
La version 1.1.4 de la librairie Javascript jQuery a été lancée ce matin :
En plus de la rapidité accrue, diverses fonctionnalités ont été introduites, et certaines sont maintenant “deprecated” comme…
August 24th, 2007 at 12:20 pm
// Put jQuery in a namespace:
var obj = {};
obj.jq = jQuery.noConflict(true);
obj.jq(”#id div”).hide();
looks very interesting but will this play nicely with plugins? com.jQ would work very nice with the namespaces I use in my apps. I am just concerned that plugins may act up if not assigned beforehand. Guess I will find out soon enough
August 24th, 2007 at 12:31 pm
OMG, Safari 3 is fastest browser i ever seen! Apple ROCKS
August 24th, 2007 at 12:32 pm
[…] In preparation for their upcoming jQuery v1.2 release next month, the jQuery team has released jQuery v1.1.4, an interim release which: […]
August 24th, 2007 at 12:34 pm
[…] Рекомендую просто посмотреть новость. Там столько интересного! =) […]
August 24th, 2007 at 12:38 pm
That’s funny, just tried the tests in Firefox 2.0.0.6, and 10 tests failed.
selector module: id (2, 5, 7)
# Died on test #6: TypeError: a[i] has no properties
# Expected 24 assertions, but 6 were run
selector module: class (6, 10, 16)
# Class selector using UTF8 (.台北Táiběi) expected: [ span#utf8class1 ] result: [ ]
# Class selector using UTF8 (.台北) expected: [ span#utf8class1, span#utf8class2 ] result: [ ]
# Class selector using UTF8 (.台北Táiběi.台北) expected: [ span#utf8class1 ] result: [ ]
# Class selector using UTF8 (.台北Táiběi, .台北) expected: [ span#utf8class1, span#utf8class2 ] result: [ ]
# Descendant class selector using UTF8 (div .台北Táiběi) expected: [ span#utf8class1 ] result: [ ]
# Child class selector using UTF8 (form > .台北Táiběi) expected: [ span#utf8class1 ] result: [ ]
selector module: attributes (2, 9, 11)
# Died on test #10: TypeError: a[i] has no properties
# Expected 20 assertions, but 10 were run
It seems like I get these errors in every browser I test it in.
… That said, I moved one of my projects over to the new version, and things are working flawlessly. So, bravo, but a slightly hesitant bravo.
August 24th, 2007 at 1:26 pm
Fantastic selector speedup, good to see features being condensed and deprecated. Very excited about slice()! I am interested to see some speed tests on that function.
Unfortunately I get the same results as Aaron when I run the test suite in FF 2.0.0.6.
I will let y’all know how the upgrade goes!
August 24th, 2007 at 1:30 pm
Well done again for the speed increases.
There are some truly amazing projects and each getting optimized more and more.
For example the HAML interpretor has recently increased it’s rendering engine and looking to get faster than erb.
August 24th, 2007 at 1:35 pm
[…] Update: jQuery 1.1.4: Faster, More Tests, Ready for 1.2. […]
August 24th, 2007 at 1:42 pm
So people who are currently using $(’div[p]’) should now use $(’div:has(p)’), but people who are using $(’div[@p]’) should now use $(’div[p]’)?!
If they don’t change the $(’div[p]’), this will change the functionality to the old @ functionality instead of the has: functionality, right?
Also, just as an aside, I was using jQuery in a Chickenfoot script, and while 1.1.3.1 works, 1.4 doesn’t (it can’t even find $ or jQuery).
August 24th, 2007 at 1:55 pm
[…] Hoy ha sido liberada una nueva versión de esta librería JavaScript (sin duda mi preferida), la 1.1.4, la cual será por cierto la última de la rama 1.1.X. La siguiente será la esperada versión 1.2, que verá la luz allá por el mes de septiembre. […]
August 24th, 2007 at 2:04 pm
I ran the test suite and had 10 failures.
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
Tests completed in 53041 milliseconds.
10 tests of 790 failed.
Here are the details: (the items with - in front of them failed.)
62. selector module: id (2, 5, 7)
1. ID Selector (#body)
2. ID Selector w/ Element (body#body)
3. ID Selector w/ Element (ul#first)
4. ID selector with existing ID descendant (#firstp #simon1)
5. ID selector with non-existant descendant (#firstp #foobar)
- 6. Died on test #6: TypeError: a[i] has no properties
- 7. Expected 24 assertions, but 6 were run
63. selector module: class (6, 10, 16)
1. Class Selector (.blog)
2. Class Selector (.blog.link)
3. Class Selector w/ Element (a.blog)
4. Parent Class Selector (p .blog)
- 5. Class selector using UTF8 (.台北Táiběi) expected: [ span#utf8class1 ] result: [ ]
- 6. Class selector using UTF8 (.台北) expected: [ span#utf8class1, span#utf8class2 ] result: [ ]
- 7. Class selector using UTF8 (.台北Táiběi.台北) expected: [ span#utf8class1 ] result: [ ]
- 8. Class selector using UTF8 (.台北Táiběi, .台北) expected: [ span#utf8class1, span#utf8class2 ] result: [ ]
- 9. Descendant class selector using UTF8 (div .台北Táiběi) expected: [ span#utf8class1 ] result: [ ]
- 10. Child class selector using UTF8 (form > .台北Táiběi) expected: [ span#utf8class1 ] result: [ ]
11. Escaped Class (.foo\:bar)
12. Escaped Class (.test\.foo\[5\]bar)
13. Descendant scaped Class (div .foo\:bar)
14. Descendant scaped Class (div .test\.foo\[5\]bar)
15. Child escaped Class (form > .foo\:bar)
16. Child escaped Class (form > .test\.foo\[5\]bar)
66. selector module: attributes (2, 9, 11)
1. Attribute Exists (a[@title])
2. Attribute Exists (*[@title])
3. Attribute Exists ([@title])
4. Attribute Equals (a[@rel=’bookmark’])
5. Attribute Equals (a[@rel=”bookmark”])
6. Attribute Equals (a[@rel=bookmark])
7. Multiple Attribute Equals (input[@type=’hidden’],input[@type=’radio’])
8. Multiple Attribute Equals (input[@type=”hidden”],input[@type=’radio’])
9. Multiple Attribute Equals (input[@type=hidden],input[@type=radio])
- 10. Died on test #10: TypeError: a[i] has no properties
- 11. Expected 20 assertions, but 10 were run
August 24th, 2007 at 2:07 pm
$(…).evalScripts() Still seems to be required for IE when using something like:
$.ajax({
type: “POST”,
dataType: “html”,
url: “testAjax.jsp”,
data: “name=John&location=Boston”,
success: function(msg){
$(”div.changeThis”).append(msg);
}
});
Am I missing something?
August 24th, 2007 at 2:08 pm
@Aaron and Charles: I’ve fixed the suite - it wasn’t checked out properly. Go here instead: http://jquery.com/test/
@Adam: No one should make the switch away from [@foo] -> [foo], because it simply won’t be possible until jQuery 1.2 (because of the obvious API incompatibility). And even so, in 1.2, [@foo] will only be deprecated - it’ll still work (too many plugins and code bases rely on having it still work that way).
Also, in relation to the Chickfoot item, it might be because we now do window.jQuery now instead of ‘var jQuery’ - hmm, I wonder how we might work around that.
August 24th, 2007 at 2:12 pm
@Brett: I checked out the wrong copy of the suite, please try this new one:
http://jquery.com/test/
@AjaxDev0008: Nope - evalScripts is no longer required here! Isn’t it nice?
August 24th, 2007 at 2:17 pm
@John:
Passed with flying colors! I love the attitude around here… “When a problem comes along, you must whip it.”
August 24th, 2007 at 2:24 pm
@John Resig: Tested without using evalScripts in IE 6 and 7. Used a simple alert in the file that was called by $.ajax.
I am afraid the alert was not called when the msg was appended.
Anyone else test this yet?
Works in Firefox though.
August 24th, 2007 at 2:27 pm
[…] jQuery 1.1 的最後一個版本:jQuery 1.1.4: Faster, More Tests, Ready for 1.2。 […]
August 24th, 2007 at 2:30 pm
@AjaxDev0008: We have tests for this in our suite - and it is passing in IE 6. Do you have a demo page that I can see? Maybe I can spot the problem.
August 24th, 2007 at 2:32 pm
@Wade
I’m not sure how it’s been implemented as I haven’t looked into the code yet, but my guess would be that plugins will play nice as long as they are defined before .noConflict is called. After that they’re probably out of luck.
August 24th, 2007 at 2:58 pm
[…] jQuery 1.1.4 Released jQuery new patch […]
August 24th, 2007 at 2:59 pm
[…] (Source: Jquery) […]
August 24th, 2007 at 3:14 pm
@John Resig: you are, of course, the man.
include('http://jqueryjs.googlecode.com/files/jquery-1.1.4.pack.js');
$ = window.jQuery;
output($);
works.
Is window.jQuery (effectively) mutually exclusive with var jQuery? I mean, are you doing that so we can do the “Any Name jQuery”?
August 24th, 2007 at 3:30 pm
@Adam: Correct, that is part of the “any name” stuff. I’m not sure how ChickenFoot works, in particular - but this may just be a caveat that’ll need to be taken into consideration, in order to use it.
August 24th, 2007 at 4:34 pm
@John Resig: I don’t have a demo page available but here is the code that I am using:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title> test </title>
<script type="text/javascript" src="javascripts/jquery.js"></script>
<script type="text/javascript">
function clickMe(){
$.ajax({
type: "POST",
url: "ajaxTest.htm",
dataType: "html",
success: function(msg){
$(’div#test’).append(msg);
}
});
}
</script>
</head>
<body>
<div>
<input type="button" value="Click Me" onclick="clickMe();"/>
</div>
<div id="test">Some Text</div>
</body>
</html>
And here is the content of ajaxTest.htm:
<div>
Some more text
<script type="text/javascript">
alert(’Hello’);
</script>
</div>
August 24th, 2007 at 4:52 pm
Hi,
I have some problems with $.ajax. My code worked very well with the 1.1.3.1 but does not work anymore with 1.1.4.1.
Here is the code (all variables are defined previously and work correctly with the previous version in IE7).
$.ajax({
url: sUrl,
data: sParams, // detected parameters
type: sMethod,
dataType: ‘html’,
timeout: 30000,
error: function(object,message){
$(sMessageId).html(”Erreur de chargement! “+message+”");
},
success: function(html){
$(sTarget).html(html); // detected target
$(”#message”).html(”");
},
beforeSend: function(){
$(sMessageId).html(”");
}
});
The beforeSend event is triggered but the error, or succes events aren’t. Thit I miss something?
;)
Paul
August 24th, 2007 at 5:24 pm
Wow! Great improvements.
Thanks!
August 24th, 2007 at 6:55 pm
[…] jQuery doczekało się kolejnej już wersji. Jak zwykle dużo nowych bajerów i jeszcze szybsze działanie (a po ostatnim “800% faster” myślałem, że dużo więcej nie wyciągną). Właściwie to na jQuery przesiadłem się dosyć niedawno i jako były-wielki-fan™ script.aculo.us czuję się zobligowany do napisania artykułu o tym co otworzyło mi oczy. Beware! […]
August 24th, 2007 at 7:25 pm
[…] Ajaxian informed me of the new release of jQuery 1.1.4. The new version is a major improvement on the previous version. In addition to the speed increase and bug fixes, they are announcing the release of some new functionality. […]
August 24th, 2007 at 7:59 pm
[…] read more | digg story […]
August 24th, 2007 at 10:37 pm
Glad to see creative updates into jquery, and plugin pages updates very nicely every few days, will be good jump to 1.2, woo!,
thank much to the very active community! and resource, well organized , good documents and examples.
cheers to all,
Nilesh P.
August 24th, 2007 at 10:47 pm
[…] 官方新闻:http://jquery.com/blog/2007/08/24/jquery-114-faster-more-tests-ready-for-12/ […]
August 24th, 2007 at 11:23 pm
I want to get all the recent speed increases but since 1.1.3 came along my photoviewer is doing weird things because of something that changed in jquery relating to animations, I believe. 1.1.4 has the same problems.
a) Firefox: I have a row of 6 thumbnails but when the containing viewer is closed now (toggle(’slow’)), the row breaks after the 5th thumbnail and the last thumbnail drops onto a new second line just before the viewer closes. Somehow it appears to be increasing margins or something when display is toggled so the row no longer fits.
b) In IE7 it doesn’t do that but instead closes in a slow, odd, step-like manner: click close, pause, then the opacity effect on the background disappears so background goes black, another pause, then closes.
Ideas on how to overcome these issues?
Thanks.
August 24th, 2007 at 11:36 pm
And still no regex selectors. Unbeleivable.
August 25th, 2007 at 12:06 am
@qui est regex: You do realize that we don’t add functionality in minor releases, right? we only add new stuff in major releases? The methods that we added this time we necessary in order to transition people away from the deprecated methods - there’s no such case with regexp selectors.
August 25th, 2007 at 7:37 am
Holy Snikeys!
The speed improvements to the ID selector alone is just awe inspiring.
Great work John and team!
August 25th, 2007 at 7:56 am
So far, no problems with my plugins. Thanks!
August 25th, 2007 at 9:10 am
Hey this may be a bit off-topic, but I just watched your entire presentation of Javascript Libraries of about a week ago, John. It’s pretty impressive and I learned a lot from it, about Javascript but also about jQuery. Awesome release by the way.
August 25th, 2007 at 9:18 am
Have you bee ntested in IE 5/5.5 ? I have test page totally stopped on the point (test haven’t finished):
88. ajax module: $.ajax - xml: non-namespace elements inside namespaced elements (0, 3, 3)
3. things in responseXML: 2
and I have also some errors in IE5.5 (I’m using MultipleIE pack)
12. core module: attr(String) (2, 11, 13)
…
12. Died on test #12: [object Error]
13. Expected 13 assertions, but 12 were run
22. core module: append(String|Element|Array|jQuery) (1, 17, 18)
…
12. Test for appending a DOM node to the contents of an IFrame
24. core module: prepend(String|Element|Array|jQuery) (1, 4, 5)
…
2. Prepending html options to select element
25. core module: prependTo(String|Element|Array|jQuery) (1, 5, 6)
…
2. Prepending html options to select element
31. core module: find(String) (1, 0, 1)
1. Check for find
39. core module: not() (1, 2, 3)
…
3. Died on test #3: [object Error]
59. selector module: element (2, 0, 2)
1. Died on test #1: [object Error]
2. Expected 9 assertions, but 1 were run
61. selector module: broken (2, 0, 2)
1. Died on test #1: [object Error]
2. Expected 7 assertions, but 1 were run
62. selector module: id (6, 16, 22)
…
4. ID selector with existing ID descendant (#firstp #simon1) expected: [ a#simon1 ] result: [ ]
…
8. Descendant ID selector using UTF8 (div #台北) expected: [ span#台北 ] result: [ ]
…
12. Descendant escaped ID (div #foo\:bar) expected: [ span#foo:bar ] result: [ ]
13. Descendant escaped ID (div #test\.foo\[5\]bar) expected: [ span#test.foo[5]bar ] result: [ ]
…
21. Died on test #21: [object Error]
22. Expected 24 assertions, but 21 were run
63. selector module: class (2, 0, 2)
1. Died on test #1: [object Error]
2. Expected 16 assertions, but 1 were run
65. selector module: child and adjacent (1, 18, 19)
…
14. First Child (p:first-child) expected: [ p#firstp, p#sndp ] result: [ ]
…
66. selector module: attributes (2, 1, 3)
…
2. Died on test #2: [object Error]
3. Expected 20 assertions, but 2 were run
67. selector module: pseudo (:) selectors (3, 22, 25)
1. First Child (p:first-child) expected: [ p#firstp, p#sndp ] result: [ ]
…
24. Died on test #24: [object Error]
25. Expected 30 assertions, but 24 were run
68. selector module: basic xpath (2, 0, 2)
1. Died on test #1: [object Error]
2. Expected 17 assertions, but 1 were run
74. ajax module: serialize() (1, 0, 1)
1. Died on test #1: [object Error]
It’s may be not so actual for US, but in other countries IE 5/5.5 is still a bit popular…
Also I’ve noticed that there are only 745 completed tests in Safari 3 Win (of 816 in all the other borwsers). Can you describe this issue?
Thank you a lot
August 25th, 2007 at 11:14 am
John,
I was reading your jQuery 1.2 Roadmap and noticed that you mentioned the possibility of including livequery into jquery if you saw a more widescale adoption of its use. Well, I’m here to testify that it is a main file included on every page of the enterprise-level site we’re building.
I was starting to get sick of writing initialize $.fn’s and livequery saved the day. After using the selector to bind an event to what is matched, there are many instances in which we Ajax in new content that needs the same event applied after DOM has loaded. Without livequery, we have to reassign events to the Ajaxed content. Of course my only concern is the eventual need for garbage collection on event triggers never used during the page view, but I’m sure some genius will come up with a plan for that.
If adding livequery to jQuery means I save a couple of bytes of overhead for file inclusion and overall filesize, I say “do it!”
August 25th, 2007 at 11:19 am
By the way. I can’t thank you enough for jQuery. It has opened the doors for many possibilities and lent me the ability to create feature-rich applications I couldn’t have done with simply reading DOM javascript books.
Thanks again.
August 25th, 2007 at 11:33 am
[…] jQuery 1.1.4 out http://jquery.com/blog/2007/08/24/jquery-114-faster-more-tests-ready-for-12/ […]
August 25th, 2007 at 12:22 pm
[…] ünlü javascript frameworku jquery‘nin 1.1.4 çıktı. Yine bir önceki sürümünden kat kat hızlı olup birçok hata giderilmiş ve birkaç yeni özellik eklenmiş. 1.2 sürümü de eylül ayında yayınlanacakmış.etiketler: javascript, ajax framework, ajax, jquery, web 2.0, kütüphane, kod […]
August 25th, 2007 at 1:37 pm
[…] John Resig and the jQuery team have released jQuery 1.1.4. […]
August 25th, 2007 at 3:49 pm
[…] En önemli javascript kütüphanelerinden jQuery’nin yeni sürümü çıkmış. Yeni sürümde iki önemli yenilik var. Yeni Seçici araçları ve önceki sürüme göre daha hızlı olması. Link […]
August 25th, 2007 at 3:50 pm
[…] jQuery 1.4 Released: Faster, More Tests, Ready for 1.2 I don’t use jQuery but I know that the community is strong and there are a lot of great scripts out there. WordPress uses jQuery. http://jquery.com/blog/2007/08/24/jquery-114-faster-more-tests-ready-for-12/ […]
August 25th, 2007 at 7:28 pm
[…] ünlü javascript frameworku jquery‘nin 1.1.4 çıktı. Yine bir önceki sürümünden kat kat hızlı olup birçok hata giderilmiş ve birkaç yeni özellik eklenmiş. 1.2 sürümü de eylül ayında yayınlanacakmış. […]
August 25th, 2007 at 9:32 pm
[…] The best javascript framework available, just released version 1.1.4 which boasts numerous improvements. The main improvement is the speed. The speed improvements come to the id selector, tag name selectors, and each() loops. Speed improvements are always great, especially when it is an improvement to functions that are used hundreds, possibly thousands of times in your code. […]
August 26th, 2007 at 1:17 am
[…] JQuery 1.2 mucho más rápido. […]
August 26th, 2007 at 3:39 am
[…] 連結: http://jquery.com/blog/2007/08/24/jquery-114-faster-more-tests-ready-for-12/ […]
August 26th, 2007 at 8:28 am
[…] jQuery 1.1.4发布了,作为1.1.x分支的最后一个版本,之后发布的版本就会是1.2版了。 […]
August 26th, 2007 at 10:15 am
[…] Das beliebete JavaScript-Framework jQuery ist in einer neuen Version erschienen. Es ist das letzte Release vor der für nächsten Monat angekündigten Version 1.2 und enthält bereits einige der neuen Funktionen: […]
August 26th, 2007 at 10:48 am
Great, thanks!
August 26th, 2007 at 4:32 pm
[…] 24 августа вышел новый релиз популярной JavaScript-библиотеки jQuery: jQuery-1.1.4. Вероятно, это последний релиз из ветки 1.1.x и в сентябре выйдет релиз 1.2. Главные изменения: значительное (в несколько раз) увеличение быстродействия по сравнение с предыдущим релизом; вместо операторов ‘$’ и ‘jQuery’ для обращения к функциям JQ можно использовать любое имя; возможность использовать несколько версий JQ на одной странице, назвав их по-разному; возможность внедрять JQ в другие JS-библиотеки. […]
August 26th, 2007 at 8:54 pm
不知道为什么,自从1.1.3到1.1.3我在使用slidedown函数时,总会产生颤动(滑动不是很稳定,虽然只有开始的一下,他先显示出全部的内容,然后又从最小开始下滑)的情况,而1.1.2却没有这个情况
August 26th, 2007 at 8:58 pm
sorry,是1.1.3到1.1.4都有问题,而且是slideup,down没有任何问题
August 26th, 2007 at 10:23 pm
[…] 上周,jQuery 1.1.4出来了,这也是1.1.x系列的最后一次版本释放,接下来应该是9月份的jQuery 1.2。在这次的更新中,主要集中在以下几个方面: […]
August 27th, 2007 at 12:41 am
@MikeChristensen
>>Well , I’m here to testify that it is a main file included on every page of the enterprise-level site we’re building.
If you need some plugins with core lib, so why not to build jQuery and livequery together in a single file? As for me I see no reason for merging.
August 27th, 2007 at 2:16 am
I too seem to be having issues with IE 6.0 and evalScripts.
I had to write a little hack.
$(”#” + id + “”).html(result);
if(getBrowser == “msie”){
$(”#” + id + “”).evalScripts();
}
I’ve tested this as follows:
1) create an ajax chunk
function test(){
alert(1);
}
test();
Try to load this via the .ajax method and the alert will not be executed in IE 6. I am not currently able to test this in IE 7 but I suspect similar behavior.
August 27th, 2007 at 3:39 am
[…] 因為好奇最近 jQuery 1.1.4 的更新提昇了多少速度,因此自己放了一個 SlickSpeed 測試頁。 […]
August 27th, 2007 at 5:15 am
I’ve moved some code around and all seems to be good now. I am not sure what fixed it but this bug no longer is affecting my application.
August 27th, 2007 at 8:26 am
How about a new slickspeed addin for 1.1.4 ??
August 27th, 2007 at 8:54 am
@frankysanders
Can you post the changes you made to your code to make the .Ajax bug go away?
August 27th, 2007 at 9:20 am
Someone has setup Slickspeed for jQuery 1.1.4
http://experiment.bcse.info/slickspeed/
August 27th, 2007 at 10:01 am
http://jquery.com/test/ crashes my Safari Version 2.0.4 (419.3) Mac
Successfully crashed it thrice.
August 27th, 2007 at 10:05 am
I should mention… jQuery is awesome.
August 27th, 2007 at 10:06 am
[…] 27th, 2007 · No Comments http://jquery.com/blog/2007/08/24/jquery-114-faster-more-tests-ready-for-12/ […]
August 27th, 2007 at 12:21 pm
@MikeChristensen:
The re-binding problem you mention, can be easily avoided using event delegation, jquerylive is a great plugin but you can just bind functions to the containers, that don’t get refreshed with ajax calls and that will work just fine.
I posted a small plugin for event delegation, it’s called Intercept. It’s pretty simple right now, maybe it helps you out.
August 27th, 2007 at 1:10 pm
Respect for your hard job!
Very nice and fast lib!
August 27th, 2007 at 3:04 pm
i has translated the document at http://www.aspstat.com/75 in Chinese.
August 27th, 2007 at 4:37 pm
IN IE7
$.ajax({ url:”test.html”,
ifModified: true,
success: function(msg){
$(”#output1″).html(msg);
}
});
—-> erreur cause of this $(”#output1″).html(msg); : Could not complete the operation due to error 8002001
When i change $(”#output1″).html(msg); for $(”#output1″).text(msg); it works, but there are many html balise ………..
so is 1.1.4.1 have a probleme with .html ?
August 27th, 2007 at 5:16 pm
Re:Ndy
try to use Fiddler with IE or FireBUG with Firefox to tracking is the server response right…
August 28th, 2007 at 12:41 am
[…] jQuery updated to 1.1.4 […]
August 28th, 2007 at 6:13 am
Thnx for the update.. any ideas when jQuery UI will be released? Just wondering..
August 28th, 2007 at 8:17 am
Rob: according to http://docs.jquery.com/UI/Roadmap the release date is Sept. 3rd.
August 28th, 2007 at 8:48 am
Daniel Lin : with fiddler i can see the response, and it’s ok
but nothing appear in the div. actually, it empty the div
August 28th, 2007 at 10:50 am
[…] Para más y mejor información, no dejen de consultarjQuery 1.1.4: Faster, More Tests, Ready for 1.2, en el blog oficial de jQuery. […]
August 28th, 2007 at 5:21 pm
[…] Check out and download the latest jQuery version at: jquery.com […]
August 28th, 2007 at 5:31 pm
I’m amazed at the noted speed improvements. I’m really looking forward to testing out the new version. Should get it up and running this evening.
I’m just getting into jQuery, and I’m in love with the ease of use and understanding, and I’ve been writing PHP code for 10 years, and various javascript / DOM stuff when needed. jQuery seems to be the simplest library to set up and implement features with for the beginner or expert programmer alike…
Keep up the good work, and I’m going to keep learning, and figure out how to push the jQuery library to it’s limits.
August 28th, 2007 at 8:43 pm
The new version is much faster. Noticeably so. Although I have a bug for IE7. Works fine in FF.
When returning html after an ajax call:
function af_matter(mid)
{
var dt = $(”#mform”).formSerialize;
$.ajax({type: “GET”,
url: “ajax/homeAjax.php”,
data: dt+”&mid=”+mid,
success: function(z){$(”#mymatt”).html(z);} });}
}
It returns the html and then appends it with the last character in the data returned (it’s an auto-complete form, so the last character of the last word returned is appended to the end of the html). Can’t figure out why. Here is what is being returned:
(PHP snippet)
There is a while loop that builds this, and then echo’s it out.
$row[1]
$row[2]
So if $row[2] is “Johnson”. It will return the whole list + the “n” from johnson underneath it.
Sorry for posting it on here. I tried to post it in the bug section, but I couldn’t register or login.
Using the ajaxform plugin and the masked input plugin. Have removed both to see if the caused any errors, and the issue persisted.
This worked great in 1.1.3. Anyone else seen this?
August 29th, 2007 at 1:19 am
[…] 这几天的新闻还真不少,昨天刚看到wordpress放出了2.3的第一个测试版。今天又发现优秀的jquery在24号就放出了1.1.4版,做为1.1.*系统里的绝版已经为1.2版做了大量的准备,增加了一些新函数,速度的提升又是一堆的天文数字。 […]
August 29th, 2007 at 6:23 am
@Robin
Thnx.. did not see before they changed the date..
August 29th, 2007 at 9:48 am
@frankysanders
@John Resig
Subject .Ajax/evalScripts() issue
We tracked down the issue and the meaning behind frankysanders comment above. The script tag in the page to be loaded by $.Ajax cannot be a child element of any html object (div, span, etc) in IE. In FF this is not an issue, the script tag can be anywhere. Other than this inconsistency the release has been great.
Will this be resolved in the next release?
August 29th, 2007 at 9:57 am
This bit of code now fails on IE7
$(’a.bold-chat’).each(function(index) {
this.href = this.href + ‘&url=’ + escape(document.location.href);
});
August 29th, 2007 at 11:34 am
jQuery 1.1.4 tests don’t even run…
http://EddieMaddox.com/jQuery/ …1.1.4…/test/
“Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.6)
Gecko/20070802 SeaMonkey/1.1.4
Tests completed in 7 milliseconds.
0 tests of 0 failed.”
Shouldn’t that “of 0″ be greater than zero?
Thanks,
Eddie
August 29th, 2007 at 11:43 am
Firefox, same story…
http://EddieMaddox.com/jQuery/jquery-1.1.4-release%20Folder/test/
“jQuery Test Suite
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.6)
Gecko/20070725 Firefox/2.0.0.6
Tests completed in 25 milliseconds.
0 tests of 0 failed.”
Eddie
August 29th, 2007 at 1:19 pm
@Eddie: You need to include the src directory along with the test directory, otherwise no tests will run.
August 29th, 2007 at 1:20 pm
@AjaxDev0008: Interesting, I’ll check into this to see if I can confirm it - thanks for tracking this down.
August 29th, 2007 at 2:34 pm
[…] http://jquery.com/blog/2007/08/24/jquery-114-faster-more-tests-ready-for-12/ […]
August 29th, 2007 at 6:24 pm
[…] Puedes generar un test de la librería mediante el Test Suite y ver los resultados de la ejecución o ver en su blog los resultados que se obtenían con la versión anterior y la actual. […]
August 29th, 2007 at 11:46 pm
John Resig Says:
August 29th, 2007 at 1:19 pm
@Eddie: You need to include the src directory
along with the test directory,
otherwise no tests will run.
John,
I found an “src” directory here:
http://dev.jquery.com/browser
However, I cannot find any “src” here:
http://docs.jquery.com/Downloading_jQuery
or here:
http://jquery.com/blog/2007/08/24/jquery-114-faster-more-tests-ready-for-12/
or here:
http://EddieMaddox.com/jQuery/jquery-1.1.4-release%20Folder/
Furthermore, there is no HOWTO-run-the-tests.html
in the “test” or “docs” directory clarifying anything.
I noticed the use of “make” to generate various deliverables.
Perhaps “make src” is missing as a deliverable.
Could that be added so people like myself can run those tests,
both nightlies and releases? In other words, “make” this just Work?:
http://EddieMaddox.com/jQuery/jquery-1.1.4-release%20Folder/test/
Thank you,
Eddie Maddox
August 30th, 2007 at 2:54 pm
[…] Acum o săptămână blogul jQuery anunţa că librăria JScript a ajuns la versiunea 1.1.4, ultimul pas înainte de versiunea 1.2, aşteptată pentru septembrie a.c. Evident, noua versiune s-a concentrat în pe eliminarea "oribilelor greşeli" (bug-uri) din versiunea anterioară. În acelaşi timp au fost aduse şi câteva elemente noi. Cel mai îmbucurător aspect ţine probabil de viteza sporită. Blogul oferă mai multe tabele, eu am inclus mai jos unul. […]
August 30th, 2007 at 3:03 pm
I’m still having problems with jquery and evalScripts. I am aware that evalScripts has been deprecated but it doesn’t appear that calling .html on a jquery object is working as expected. There are essentially two cases for parsing javascript.
1)Inline alert(”hello”);
2) and external src =
I’ve noticed that evalScripts used to look for both of these instances and handle them appropriately.
evalScripts: function() {
return this.find(”script”).each(function(){
if ( this.src )
jQuery.getScript( this.src );
else
jQuery.globalEval( this.text || this.textContent || this.innerHTML || “” );
}).end();
}
The new version of jquery claims that evalScripts is no longer needed, however this only seems to be the case for Firefox.
Why not have the evalScripts method combined with the method that renders HTML from ajax calls? i.e. after calling innerHTML call evalScript on the element. To work around this bug i’ve changed my application from:
$(”#myId”).html(result);
to
document.getElementById(id).innerHTML = result;
$(”#myId”).evalScripts();
and reverted back to jquery 1.1.2.
Does anyone have any insite on this or any plans to fix this in the next release?
August 30th, 2007 at 6:01 pm
i can not use the plugin’s jQuery.iDrag of the interface.js under 1.1.4, but it worked good under 1.1.3.
August 31st, 2007 at 12:49 am
the best framework has new version! great work!!
August 31st, 2007 at 6:34 am
@John Resig
I have confirmed that IE and 1.1.4 have an issue with putting script tags in side of DOM elements. Specifically jquery does not parse these tags in ie when rendering ajax results. Is there any chance this will be fixed soon? Or should I byte the bullet and just change and move all of my script tags outside of DOM elements? (painful work, but maybe necessary)
August 31st, 2007 at 12:16 pm
Great work!!!
August 31st, 2007 at 1:50 pm
[…] Jquery 1.1.4 Released - And the forthcoming 1.2 is around the corner. […]
August 31st, 2007 at 6:14 pm
The test suite at http://jquery.com/test/ produced the following on a Mac (933mhz G4 1.5gig ram). Shown slowest to fastest:
Firefox: 86351 milliseconds
Opera: 64379 milliseconds
Camino: 64184 milliseconds
Safari (3.0.3): 32827 milliseconds
September 1st, 2007 at 1:29 am
http://jQuery.com/test/
Mac G3, OSX 10.3.9…
“jQuery Test Suite
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.6)
Gecko/20070802 SeaMonkey/1.1.4
…
Tests completed in 150268 milliseconds.
0 tests of 816 failed.”
Now, if only /test/ worked that easily
straight from the “.zip” after unpacking…
http://EddieMaddox.com/jQuery/jquery-1.1.4-release%20Folder/test/
“jQuery Test Suite
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.6)
Gecko/20070802 SeaMonkey/1.1.4
…
Tests completed in 7 milliseconds.
0 tests of 0 failed.”
Thanks, hcabbos,
Eddie Maddox
September 2nd, 2007 at 1:20 pm
Пиздец испанцы охренели! Давайте тоже писать на русском.
Thanx for this release!!!
September 3rd, 2007 at 10:08 am
[…] La scorsa settimana stata rilasciata la 4a minor release di jQuery, per la precisione la 1.1.4. A parte i continui miglioramenti di performance ed i bugfix che questa libreria sta continuando ad avere si iniziano ad intravedere le prime modifiche alle API che porteranno all’imminente trunk 1.2. […]
September 4th, 2007 at 2:56 am
[…] Предната еволюционна версия на jQuery, в очакване на 1.2. Подобренията: […]
September 7th, 2007 at 10:48 am
Tests completed in 71047 milliseconds.
1 tests of 816 failed.
RussianDev: Здесь некоторий сможет понемат твои слова.
September 8th, 2007 at 12:25 pm
yeah yeah yeah!!!! this will save the loading time of scripts that use jquery… i really like this
September 8th, 2007 at 8:35 pm
xcczxczx
September 10th, 2007 at 6:52 am
On my MacBookPro with OSX 10.4 (up to date) and Safari 2.0.4 (419.3) the testsuite crashes the browser near “core module: attr”.
September 17th, 2007 at 9:18 am
[…] - jQuery 1.1.4 - jQuery 1.2 - jQuery 1.2.1 - jQuery UI […]
September 22nd, 2007 at 9:20 am
[…] read more | digg story […]
September 30th, 2007 at 10:04 pm
[…] read more | digg story […]
October 1st, 2007 at 7:39 am
[…] jQuery: » jQuery 1.1.4: Faster, More Tests, Ready for 1.2 […]
October 9th, 2007 at 5:12 am
[…] In preparation for their upcoming jQuery v1.2 release next month, the jQuery team has released jQuery v1.1.4, an interim release which: […]
October 10th, 2007 at 12:22 am
I seem to have a problem with every release after 1.1.3.1
I’m loading a URL in a Thickbox(iframe). The iframe contains a text field which uses the jQuery Suggest plugin (which BTW should be cleaned up, extended a bit and brought into the official plugins because it simply works…). In Firefox, I get the following error as soon as the iframe content is finished loading :
document.defaultView.getComputedStyle(h, null) has no properties (on jquery.js line 11)
The weird thing, is that if I simply reload the iframe, the error doesn’t happen… Everything works fine once the iframe is reloaded. If I open the iframed URL in its own window, everything’s fine on first try (no reload needed)…
I went back to 1.1.3.1 and I don’t get the error. Is there anything I can do to be able to use at least 1.1.4?
Thanks!!
October 30th, 2007 at 8:11 am
Free Razr plus free shipping with activated service plan.Choose from AT&T, Nextel, T-Mobile, Verizon, and more.
Click here
December 12th, 2007 at 11:18 pm
[…] Every blog post, there we are, thumping our chests, showing our superiority…. against ourselves! […]
January 13th, 2008 at 8:14 am
thank you very much for your hard work!
Great!!!
January 16th, 2008 at 3:01 am
So great~~
February 15th, 2008 at 12:57 pm
Just discovered a complete list of all marked down products at Amazon, sorted by category
and % off, ranging from 50% off to 90% off (thanks Sonja for the effort).
Actually I never thought Amazon would have articles with 90% off, but only in the category
Electronics there are more than 3000 of them - look for yourself, the list is on
Bargain Hunter (which is a blog of a woman who specializes in finding good deals at
Amazon, like Britain’s “Jeanie”).
February 26th, 2008 at 9:54 am
Your comment contains very useful information about all thank you fransızca tercüman
March 31st, 2008 at 9:48 pm
[…] 当距离上一个版本1.1.4发行不到3个星期就宣布了jQuery 1.2 版本时,上述最后一点被真正突显出来。开发团队有非常清楚的开发目标,并在jQuery 1.2 路线图中描绘了许多特性,最终使其包含到目标版本中。新特性包括: […]
April 7th, 2008 at 6:17 pm
MP3 Music Downloads
http://themp3pro.com
May 3rd, 2008 at 4:08 am
Really information Site
Super nice site.
I love it.
Vsevolod Myhanov
Home site
Home site