Linux.Desktop.Hacks [Electronic resources]

Jono Bacon, Nicholas Petreley

نسخه متنی -صفحه : 140/ 94
نمايش فراداده

Hack 61. Eliminate Annoying Browser Stalls

Here's a method to short-circuit the part of the web page that is stalling your browser.

It doesn't happen often, but every once in a while, you visit a web page that seems to take forever to load, or simply hangs and never finishes loading. The problem often occurs because the web page includes a picture, a button, an advertisement, or some other web element from another server that your browser cannot reach or cannot reach quickly.

These resources are slow to respond for a few reasons. Sometimes there's a bottleneck on the Internet itself. Sometimes a link to a button, picture, or ad points to an Internet site that is overloaded and having trouble responding.

Sometimes a link to an off-site graphical element is pointing to an address that is inexplicably difficult to resolve. You see, for every domain name, such as oreilly.com, there are one or more numeric Internet protocol (IP) addresses. Your browser needs to ask a domain name server (DNS) for that IP address, and that server might have to pass the request on to another server, and then to another. Sometimes there's a bad link in the chain, and your browser simply gets hung up waiting to find out the numeric IP address.

This hack refers to a problem with a specific link or site. When Internet access in general seems slow, one thing you can do is go to http://www.internethealthreport.com/ to see the current status of various Internet access and router points. The poor performance could be caused by a router outage somewhere. It might have nothing to do with the speed of your personal access method to the Internet.

But when you visit a web page again and again for weeks and notice that it consistently stalls, that's a sign that one or more identifiable elements, such as a graphic or advertisement, might be causing the stall. For this hack, assume the problem is with a graphical button. In this case, the web site you are trying to view does not contain the graphics file needed for that button to be displayed. Instead, the web page includes an HTML instruction to get the graphic for that button from another site. You can run into trouble if the browser has trouble finding the IP address for the site that contains the graphic. Or perhaps your browser doesn't have fast access to the site that provides the graphic, or your browser is blocked from accessing that site. The bottom line is that your browser can stall when loading the web page simply because it cannot get the graphical element from a remote site. Some browsers might even refuse to finish loading the page until the problem is resolved.

You can short-circuit this process so that it never has to contact the problematic web site. The trick revolves around how your computer translates domain names, such as oreilly.com, to IP addresses.

The /etc/nsswitch.conf file determines how your computer tries to resolve the address of a domain name. Examine your /etc/nsswitch.conf file, and look for the line that starts with the label hosts. For example, it might look like this:

hosts:     DNS files

This tells your computer to check the DNS first, and if it cannot find the IP address from the DNS, to try looking up the IP address in your local file called /etc/hosts.

If the line looks more like the following, it checks the local file /etc/hosts first, and then checks with a DNS if it can't find the IP address from your local file:

hosts:     files DNS

In most cases, browsers are slow to load pages or stall on something such as a graphical element, because the DNS is having trouble resolving the domain name into an IP address.

8.8.1. Short-Circuit the DNS Request

You can short-circuit this process in a few steps. First, make sure the line in your /etc/nsswitch.conf file looks like the latter example, where files precedes DNS. If your /etc/nsswitch.conf file places something other than files first, rearrange the order to make sure files comes first.

Next, determine the domain name that is causing your browser to load a page slowly or get stuck loading a web page element. Here's how to track down the troublesome site. Keep your eye on the status bar in your browser. If you are experiencing the kind of problem I've been describing, the status bar usually reads something like "Looking up

Suppose your browser is getting stuck loading a page, because it is having trouble trying to figure out the IP address of a host such as