Yeah, this is exactly what the problem was.  I managed to type in the
right search string finally and found the answer in here.  I actually
decided to use $.post for my json request and IE does not cache POSTs.

On Dec 18, 6:35 am, Andy K <[EMAIL PROTECTED]> wrote:
> On Dec 18, 10:22 am, "Jesse R." <[EMAIL PROTECTED]> wrote:
>
>
>
> > I am working on building a shopping cart and wanted to utilize
> > jQuery's ajax methods to enhance some response times.  If you go 
> > tohttp://www.blueskyvineyard.com/dry-wineandadd an item to the cart,
> > then either click the "+" or "-" to increase or decrease the quantity,
> > it works just as expected in Firefox.  However, in either flavor of
> > IE, it will only increment or decrement once, and then will stop
> > functioning.  Here is my current code:
>
> > jQuery(document).ready(function(){
> >       jQuery("#highlight").animate({
> >         backgroundColor: "#b1f3b1"
> >       }, 500 );
> >           jQuery("#highlight").animate({
> >         backgroundColor: "white"
> >       }, 500 );
> >           jQuery("#highlight").animate({
> >         backgroundColor: "#b1f3b1"
> >       }, 500 );
> >           jQuery("#highlight").animate({
> >         backgroundColor: "white"
> >       }, 500 );
> >           jQuery('#clearCart').click(function() {
> >                 jQuery.get("/", { clearCart: "1"} );
> >                 jQuery("#minicart").html("<h1>Your Cart</h1><p>Your cart is 
> > empty.</
> > p>");
> >                 return false;
> >                 });
> >           jQuery("#clearCart").confirm({
> >                         msg:'Are you Sure? '
> >           });
> >           jQuery(".ajax-container").each(function (i) {
> >             var target = this;
> >                 var $target = jQuery(target);
> >         var id = jQuery(this).attr("id");
>
> >                 jQuery("#remove" + id).click(function () {
> >                         jQuery("#ajaxwrapper"+id).text("");
> >                         jQuery.getJSON("/ajax-cart", { clearItem: id}, 
> > function(json){
> >                                 if (json.e == "0") {
> >                                         jQuery("#totalitems").text(json.t);
> >                                         jQuery("#subtotal").text(json.s);
> >                                         
> > jQuery("#discounttotal").text(json.d);
> >                                 } else {
> >                                         jQuery("#minicart").html("<h1>Your 
> > Cart</h1><p>Your cart is
> > empty.</p>");
> >                                         }
> >                                 });
> >                         return false;
> >                         });
>
> >                 jQuery("#inc" + id).click(function () {
> >                         var quantity = $target.text();
> >                         var incvalue = parseInt(quantity) + 1;
> >                         $target.text(incvalue);
> >                         jQuery.getJSON("/ajax-cart", { increment: id}, 
> > function(json){
> >                                 jQuery("#totalitems").text(json.t);
> >                                 jQuery("#subtotal").text(json.s);
> >                                 jQuery("#discounttotal").text(json.d);
> >                                 });
> >                         return false;
> >                         });
>
> >                 jQuery("#dec" + id).click(function () {
> >                         var quantity = $target.text();
> >                         var decvalue = parseInt(quantity) - 1;
> >                         $target.text(decvalue);
>
> >                         if (decvalue == "0") {
> >                                 jQuery("#ajaxwrapper"+id).text("");
> >                         }
> >                         jQuery.getJSON("/ajax-cart", { decrement: id}, 
> > function(json){
> >                                 if (json.e == "0") {
> >                                         jQuery("#totalitems").text(json.t);
> >                                         jQuery("#subtotal").text(json.s);
> >                                         
> > jQuery("#discounttotal").text(json.d);
> >                                 } else {
> >                                         jQuery("#minicart").html("<h1>Your 
> > Cart</h1><p>Your cart is
> > empty.</p>");
> >                                         }
> >                                 });
> >                         return false;
> >                         });
> >       });
>
> >         jQuery(".ajax").attr({
> >           href: "#"
> >                 });
>
> > });
>
> > Any ideas?  Also any tips on making my code less redundant would be
> > helpful as I am kind of new at this.
>
> This is due to the IE implementation of XMLHTTP being a little over-
> enthusiastic about using cached copies instead of going back to the
> server for each request.
>
> There are two ways of improving this, I prefer to use both ways at the
> same time just to be sure.
>
> The first way is to add a parameter to your AJAX get request that
> changes every time, I usually use "nt: (new Date.getTime())", which
> can be ignored by the server code.
>
> The second way is for the server script to return a bunch of headers
> telling IE and any proxy servers to go back to the server every time.
> This is described 
> athttp://www.greenash.net.au/posts/thoughts/an-ie-ajax-gotcha-page-caching
>
> Hope this helps
>
> Andy K

Reply via email to