JQuery :: .ajax() Seems To Be Too Slow For Key Events
Jun 12, 2010
I have a problem with the jQuery.ajax() function combined with a keyup event (i think key events in general). I'm binding an keyup event to an input field so that on every change the current input is send via the ajax function and receives new data from the server, displaying it in a selectbox.
when I'm typing very fast it seems that the ajax function is too slow for this and shows up old result elements. After triggering the event another time, e.g. via UP,DOWN,.. it receives and displays the correct data.
I am developing quite a complex user interface in jQuery that relies on an AJAX call to retrieve JSON.We have noticed that the code runs slow in IE7. IE8 and IE6 are acceptable. Firefox and Chrome really quick. I have traced the problem back to the AJAX call, which IE7 seems slow o process. What takes less than a second in the other browsers will take IE7 3 or 4. I have googled for an answer it seems there is some consensus that the native XHR in IE7 is slow, so it may not be a specific jQuery problem.Has anyone else experienced this? Does anyone have a solution? Please consider that this will be a public website, so the solution cannot involve altering settings on users' machines.
I've managed to use ajax to fetch and display the quotations which associate to a particular rep after i click that rep's name. But the only problem is the speed of response. The first few clicks are ok and very smooth. But after several tries, the response become slow and I cant even scroll down the webpage, and later on the web browser craches....
here it is:
<!-- Data display area --> <br /><input type="image" id="printbtn" value="Print" src="images/printer.png"/><br /> <div id="container">
We have a corporate product which uses ajax and different layers of soa , java etc across all browsers and multiple platforms But the observation is - IE8 is extremely slow when working with ajax framework. THe browser processing time increases exponentially with increasing js file size. Works fine in non IE browsers.
I define a "click" event on "a" tags in the ready part of a page. It fires just fine when I click on any "a" tag on the page. I then have a button which sets the content of a div using ajax. This content contains a couple of "a" tags. The issue now is that the "click" event does NOT fire when clicking on these tags. I suspect it is because they did not exist when the page was initially rendered. What is the "JQuery way" of dealing with an issue like this? Of course I cannot be the only one in the world who needs to return HTML with events from my ajax calls :-)
I have a list with entries, which can be removed, by clicking on a delete icon. That triggers a jQuery event, resulting in an ajax call to delete the clicked record. The new list is reloaded in the div, but the delete icons no longer trigger jQuery events.
I am missing something, probably re-enabling the event handlers
I've tried searching for this under the forums — and maybe it's because I just am using the wrong terms — but I cannot find any answers around this. Here's the skinny:
I've got a listener for click events from links in DIV #1 in the loaded document, and when a user clicks on one of those links, it passes a value to a .get() function and runs a simple AJAX call and dumps the data/html results into DIV #2.
After that click event, DIV #2 has a bunch of links in it, and I'm trying to traverse that dynamically assembled list and perform another .get() function based upon whatever link they click in DIV #2.
Based on the parameter passed from the link in the dynamically assembled DIV #2 box, it would run the .get() function and fill DIV #3 with the data/html results from that second AJAX call. The problem is that I can't seem to detect any sort of click event from the contents of DIV #2 aside from clicking on DIV #2 itself. I've tried the usual .children() to try and traverse down to where the inserted links would be, but that's not working (e.g.: $("#div2").children("a").click(); ). I've also tried .find(), filter() and .has() but it doesn't respond, as if there was nothing there.
I have a feeling it's something simple that I'm missing here; but I've no clue what I'm doing wrong. It seems that you should be able to traverse the DOM, even when you're essentially building it dynamically based upon a user's selection or an event within the DOM.
what I should be using to use to detect click() events from dynamically assembled elements? I know exactly what DIV they'll be sent to, I just can't seem to traverse anything with them when I'm dynamically inserting HTML into them.
The problem is lines 37 and 38. opts.onHide calls the callback function sliderOnHide (which performs an Ajax load call) at the bottom of the listing. The problem is that line 38 starts executing before line 37 completes, thus line 38 cannot calculate a proper outerHeight. how to ensure line 37 completes before line 38 begins too do so? (If you have any other tips for the rest of the code, feel free to pass it on. This is my first plugin. Using it to get a feel for jQuery.)
I've used to an AJAX call to load a HTML table into div. This is working successfully. I know want to use a click event on buttons located within the inserted table.
The click event is triggering on buttons outside the inserted table but not on the buttons within the table.
Do I need to call some sort of refresh function to so that jQuery is able to pick up these events?
I haven't seen much mention of this on the web, and only recently discovered it works.... not sure if this is somehow bad practice or just a lesser known trick, but lately I've been chaining .ready() at the end of .html() when I want to bind events to new ajax data. I presume it's much more efficient than live(), and avoids racing issues. E.G.: $.ajax({ type: 'POST', url: 'myPage.html', success: function(c){ $(".response").html(c).ready(function() { bindNewEvent(".response a"); }); }); function bindNewEvent(o) { $(o).click(funciton() { ...etc... }); }; There's infinite docs about using .ready() to process the document, but not returning HTML. Passing the above along should anyone find it useful or have insight onto why it's seemingly not mentioned elsewhere.
I have an Ajax post that gets 100 records. That runs a callback function called Update(data.d) that loops through and populates a Div container with these records each in their own Div with numbered IDs. (It also removes old Divs so that there are never more than 100 n the container. During this loop I register the click event for each <a> called'Like':
Using $.get() and insertBefore() work great for what I'm doing. But, the data I insert does not respond to events that I have set up. I'm notsurprised by this. I'm sure there is something extra I need to do. But, what is that?
I am trying to "ajaxify" my site. Now I have one problem:
$("#posts").children().remove(); $("#tag-sidebar").children().remove(); $.each(data.Tags_Sidebar, function (indexInArray, valueOfElement) { var insert = $("<li>");
[Code]......
Now when I click one of those links (href1, href2, href3) generated, the click event won't execute! What's the problem? Also, is it right that I have to transfer the valueOfElement over, like I did? What does stopEventPropagation do? Prevent the href from being navigated to? That's what I am trying to do.
I have a series of images with an animation bound to mouseover and mouseleave events, and I'm trying to get my head around adding a click event that would prevent the mouseleave animation from occurring only for the image that was clicked, preserving everything else as is (until another image is clicked). I've discovered .stop() and I think I'm getting close, but some part of the logic is still escaping me.
I have following code to have a scroll animation effect. The cod eis triggered e.g. by a click.[code]...
The problem is, that the browser (tested in FF, Chrome, IE9) just jumps to the scroll target, no effect is viewable. I googled the code in different places, everybody else seems to have no probs with it.
Please the link to see what I have done so far...[URL]... It is a day planner, where various places can be dragged on to the day planner. It works, but it seems very slow. Running firebug profile when dragging a simle place into a single slot tells me that over 35,000 calls were made.
I've read a lot about how slow IE7/javascript is, but I thought I'd share this test. I have a complex page with about 15 tables of class XYZ. I timed this:
I have a table with 5000 rows. In each row I have an html element. myElementList is the list of those elements. Now I need to select all the tr's of these elements. I am using the following code.
[Code]...
This work great in FF. But when I run the same in IE 8. The browser hangs out and a popup messgae appears that propmt for to stop the script.
I am pulling data from a database and putting it into a table, i'm using the following statement to add row hightlighting to make it easy to read. Everthing works fine with short tables, but for larger tables the highlighting lags severely, aside from manually adding the mouseover/mouseout directly in the output, is there any way to make this faster?
I'm having trouble using jQuery to find get select box values by element name. At the moment the code is in a for loop and it gets 8 different form values and puts it into an array. Currently this takes 1.5 seconds to execute which is far too slow as the user has to wait for it to finish. Here's the code which is inside the loop:
[Code]...
This when run executes instantly with no time delay. Why is the jQuery way so much slower? I'm all for saving 2 lines of code but not when it's 10x slower. Also I shouldn't need to put an id on the select box element to make finding it faster, the name value is already unique because I require the specific value once the form has been submitted.
i have a div which i am showing and hiding based on a button click.now when i click button first time, div will show with slow effect. but when i click button second time, the div hides quickly...
if( visible==0 ) // parent div not visible, show the div { visible=1;
I've recently been using cluetip on a datable of about 400 rows. Recently I tested this against IE8 and found it very very slow. Doing simply the following:
Basically for each row in my table (400 rows) it would attach the cluetip to it. In IE8 it would freeze the browser for a good minute, if I pushed the compatibility mode button to run in IE7 mode it worked as xpected. In all other browsers it worked perfectly. Is there something different going on with IE8?
On our website we wanna bind a click (or maybe mouseover)-event on every user-image. The click on the image should open a layer with further information about the user. Now i look for a best practice way to solve this (focus on performance), because there could be a lot of user-images on one side. I think, if i bind the event on a class like this
that could slow down the site, because i read, that "The class selector is the slowest selector in jQuery". Back to the roots and insert an onclick(function) to the element, but i'm not realy happy with that solution.
Hereyou can find the whole example. By clicking onClick to Addyou will clone 100 times the elementtrackOn; then it will be append to the tabletracklistOn. Unfortunatly, if these elements are inside aformyou can see that the time is very high before the process is finish.If I remove the form, is quite immediate. Why this behaviour? How can I fix this problem? P.S. I don't know why, but I can't paste the whole code here. So follow the jsFiddle link please :)