Faster Page Loading: Asynchronous Calls And Tricks Of Perception
Nov 24, 2010
Anyone loading a bunch of CSS or Javascript via <link> tags on a web page knows about "blocking": where the browser stops the loading of the page because it has to go fetch (and read/parse) an external file. If you have a lot of these, or even if you don't and the user has a slow connection, you have a slow page. Users hateses teh slow pages, hatses them.
At the 2010 Fronteers Conference, Stoyan Stefanov gave a talk on Progressive Downloads and Rendering, where he listed some tricks to get around blocking by Javascript or other external files to make page load speed up. One trick was adding a <script> tag in the body (near the bottom, so after the important stuff has loaded) which adds a <script> tag to the <head> dynamically and runs it. While that file is being fetched, the rest of the page can continue to load. This is a bit asynchronous, isn't it (similar to web pages still loading content while also fetching images)?
As a follow-up to his Higher Order Javascript article (see SitePoint thread about it), Piers Cawley has gone further with Asynchronous Streams, where he uses jQuery (as an example) to load external files asynchronously to avoid blocking of the HTML document loading. In my web development career I haven't worried about blocking, but plenty of folks around here are loading ginormous files, and lots of them, for large sites. As developers, what do you do to get around slow page loads? Have you done anything like this asynchronous calling of the external files?
Im trying to use jquery to try to do what the image shows: Its for a website made for iphone so im trying to add the slide effect. It all seems a little complicated, but ill explain: 1-The user clicks a link 2-A loading message (or image) appears Meanwhile, the new page loads on a hidden side (its a FULL page, not just a div)
I want to send another ajax request when one request is in process to get the status of first request. If I call both the request the second request gets blocked till the completion of the first request.
I am currently doing a photography site.I would like to do a 'portfolio' page, but would like to pre-load the images so that they appear on-screen faster.Do I need to connect code to <body onload>?
I have some trouble with my app. User enters his login&pass, they are being checked on server using ajax, and if they're ok, i wanna open new page, which'll set cookies and session vars, but i have an universal script, and I need request something like universalScript?mode=login (mode is GET) and some POST parameters such as login and pass, besides it must be new page, not ajax, Some ideas?
Just wanted to rant about people who think it's a good idea to restrict user input.
I just copied and pasted my 8 character Confirmation Code into a commercial web site and clicked "Go".
It whined that the Confirmation Code was invalid.
Comparing the value I had copied from to the field I had pasted into, I saw that it had truncated the last character.
The Copy operation had included a leading space, and since the field only allowed 8 characters, it kept the space and dropped the last character of the Code.
That's bad user interface design.
The field should have accepted my input blindly and then stripped whitespace and audited the remaining value.
I have a single webpage that contains information on all 50 U.S. states. There are 50 links at the top to jump down to the state you want, and at the bottom of the information for each state a Back to Top link.
I'm making the Back to Top link into something more complex, and it will require three or four lines of code.
So that I don't have to repeat the code 50 times, and create a burden when I need to edit it, I want to place it in a .js file and call it x. Then below the information for each state I'll simply have:
Does calling code from a .js file 50 times slow down the page load? Which method would load faster?
Is it faster/more beneficial to have two snippets of code be generated by php at 2 different urls and then have a load function for each url? Or have the two snippets on one page, surrounded by id's and then load them that way?
I want to make a page which loads the div's with ajax The html code of the page is
Code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> //styles and other script code <script language="javascript" src="../js/intro.js"></script> </script> [Code]....
Now the problem is that javascript "freezes" and setInterval does not work.. Is there any solution to load the files order such i have it in code one-by-one and run the message function?
What I want to do is: On a site, when a viewer hits the 'contact us' button, a new page opens with a contact form which will in turn be submitted to a php script on the server.
I want to pass the url of the page that called the form to the php script in a hidden field, so that when the php form handler emails me the form result it tells me what page the viewer was on when they hit the contact me button, and then after that I want to send the viewer back to that page,
In a page I can get the page url using js to get location.href and place it in a variable. But after calling the form page I don't see how to put that variable which I think is global(?) into a hidden form field to post when the form is submitted.
Once it is at the server I have no trouble with the php to do what I want, I just can't see how to get the javascript variable to persist across site pages.
I have a site that is very jQuery and image heavy. The main sections of the site link to sections that are built with several Tabs, and as it loads, you briefly see all the content load and then it is hidden by the Tabs code.
The plan is to have a full window DIV that sits above all the content with a loading icon that plays until the entire page loads, and then it fades down.
After some hair pulling and research I have code in place that does exactly as I ask, however it does not seem to work in IE6+7. It works in all other browsers.
I have a lot of javascript functions that request information from an iframe hidden on the page. I see other sites do this, but their browser does not do the loading action (like the processing circle in Firefox). When I do it on my site, each browser shows the loading icon, as if a page was loading. Is it possible to not have this?
http://bit.ly/cv1YqN
That is a sample link. Go down right side of page where you see three buttons: Trailers Featurettes Clips.Those return iframe information to work.
Basically, what I am trying to do is call several ajax requests using jQuery on the same page, i know that all browsers are capable of requesting multiple requests. However in Chrome and Safari my website works fine, but IE, Firefox and Opera all only call the first request then dont call, the second two. I dont know why though?
Is there any way with Firebug, or any other tool, to easily find which functions are being called by which page on load?I need to optimize a huge pile of JavaScript files for a large website.
I have a ajax function implementation: when the user is on one site, the ajax call keeps checking the server every 5 seconds if there is a server url change. If there is, there will be a message displayed to direct the user to go to another site.
when the user go to another site, the ajax keeps checking every 10 seconds, if there is condition met, the message will be displayed to direct user to go back to the previous site. Also, after the message is displayed, ajax call keeps checking if there is another condition met, if there is, the message will automatically disappear.
The use case is: when one server is down, the message will direct the user to another site. On another site, when the previous server is up, the user could be redirected to the previous site. there is also scenario that when the message is displayed (when server is down), the user may not follow the link to do anything. he/she may simply leave the message on and go to lunch or something, when he/she comes back, the server may be already up and the message should be disappeared instead of keeping showing the message. Therefore, the message should be displayed or disappeared automatically based on the ajax call condition.
I implemented the ajax function and it did check and displayed message. However, it wont' display the message only until the user login or the user does a "refresh" to the page. After the message is displayed, when another condition met, the message won't disappear until the page is refreshed. Then the ajax calls keep doing fine every 10 seconds. The ajax call seems fine since when I set a alert, I did see the popup message show up every 10 seconds (but only after I refreshed the page.)
Now the problem is: the message can't be automatically displayed or disappeared. It can only happen when there is new page load (refresh). How can I solve this problem. I'm thinking of putting "windows.location.reload;" to load the page right after the condition met. But kind of feel I don't need to do this.
I have several ajax calls that originates from the same page its updating. It works perfectly in firefox but in IE it works for about 18 requests and then just stops until the page is refreshed. I thought it was a cashe issue but I have added a variable for that. I think it may have something to do with binding but I am not sure how to sort that. This is one of my functions.
i have an html page that when it loads theres an onLoad event called which calls a function.now what i want to do is be able to click a link that refreshes the page but at the time on the refresh it skips the onLoad event. is this possible?
I have created a party-events website. Which displays a lot of dates of events. As you might understand this page takes some time to load. Therefor I want some of loading image to be displayed while the page is loading. Anybody has an idea how to pull this of? I don't know how.
In detail: People come to my website. They click on "events" and a loading.gif pops up and and makes the background darker. After the page has completely loaded the loading image disappears and the website shows.
I am using AJAX and coldfusion, and am having trouble getting some alerts to work. I am using the http object in javascript: var url="add_item.cfm" oXmlHttpadditem=GetHttpObject(addStateChanged); oXmlHttpadditem.open("GET",url,true); oXmlHttpadditem.send(null);
then, in add_item.cfm, I am just using: <script type="text/javascript">window.alert("Hello World ");</script>
but the alert isn't being displayed. I assume this has to do with client-side/server-side issues, but can someone please clarify why this doesn't work, and perhaps offer a fix or alternative solution?
I think it's okay to ask this question in this group, but if not please point me to the correct one!
How does one go about doing asynchronous updates between two web clients? Take Google Chat for example... how does Google Chat update a chatter's chat window with text entered by the other chatter?
I'm having (once again) tremendous problems with IE (7), trying to create an application that behaves properly.
This time, it's with Ajax calls triggered by a button click, which do not behave asynchronously.
Here is the highlight of what I'm trying to achieve: a button clicked sends an ajax call to the server whilst the call is made and until the callback function has returned (or an error has been identified), a "wait" animation is triggered. (in the case below, simulated by appending a status in a div)
To achieve this, I decide to use .ajaxStart(), .ajaxStop() and .ajaxError() to trigger the wait animation. It works perfectly in FF and Chrome, but (as usual) not in IE. In IE, when I press the button, the button remains depressed until the ajax call is finished, and then all statuses are dumped at once onto screen. Not very asynchronous...
Here is my code:
If I uncomment line 11 and uncomment the alert, it seems that this forces IE to do things in the proper order. Obviously that's not a solution however...
Will I have to (once again) write IE-specific code to get things working properly?
I'm trying to select client side language to learn. For some time i wanted to learn Javascript, but when i tried writing first script which was so simple, i saw that it has so much problems. I thought of flash, and read few tutorials online. It's pretty simple but powerful language.
I know that probably worst feature of flash is that it's not included by default in your browser, but since youtube and other video sharing services i think that flash players on browsers are drastically more installed then before, and that almost everybody has it.
Now, i'm planning to create chat for my personal website, and i saw Ajax chats, and Flash chats. Since i don't have experience with any of the scripts i'm wondering which code is faster Properly written Javascript, or Actionscript.
Also, which of these languages are better for me to learn. I'm learning web programming as hobby so don't use money as argument. But which of those two can be used for creating fun, dynamic, fast and safe programs easily