From: Thomas 'PointedEars' Lahn on
mscir wrote:

> I want to speed up my pages and I'm wondering if there's any reason not
> to write the google javascript into a PHP inlcude file that I load from
> my own server instead of downloading from google every time.

Compatibility, perhaps.

> So instead of including these 2 lines at the end of every page I want to
> track:
> <script type="text/javascript">var gaJsHost = (("https:" ==
> document.location.protocol) ? "https://ssl." : "http://www.");

`document.location' is deprecated ever since. Do not use. It is the first
thing I change in those copy-and-pray scripts when I see them, to

var gaJsHost = ("https:" == window.location.protocol)
? "https://ssl."
: "http://www.";

The standards-compliant and backwards-compatible `document.URL' would also

var gaJsHost = (document.URL.substring(0, 6) === "https:")
? "https://ssl."
: "http://www.";

One wonders, though, why they do not just tell their users to include the
right script for the right protocol.

> document.write(unescape("%3Cscript src='" + gaJsHost +
> "'
> type='text/javascript'%3E%3C/script%3E"));</script>

Yet another piece of evidence that the cluefulness at Google about client-
side scripting is minimal, if that. Even if they kept the silly protocol
detection, the same could be written more efficient and legible as

document.write("<script src='" + gaJsHost
+ "' type='text/javascript'><\/script>");

(And if they targeted XHTML, anyone ready to use it would use a CDATA
section, and do not change anything here as well. Except perhaps the
document.write() as it does not work with application/xhtml+xml.)

That is the second thing I change in those scripts when I see them.

> <script type="text/javascript">try {var pageTracker =
> _gat._getTracker("UA-NNNNNNNN-N");pageTracker._trackPageview();}
> catch(err) {}</script>

And then this one. Obviously Google Analytics just breaks in older
browsers as their implementations (JavaScript before 1.4, JScript before
5.0) are known not to support try-catch. They could have at least used a
wrapper to hide the incompatible code, such as jsx.tryThis().

> I would have a single file on my own server that includes the script
> from here:

Define that. As I understand "includes the script" with regard to PHP
(`include(...)'), it would not speed up anything. For would it not be
slower because first the PHP script would need to be triggered?

> and these lines:
> try {
> var pageTracker = _gat._getTracker("UA-NNNNNNNN-N");
> pageTracker._trackPageview();
> }
> catch(err) {}

Yes, you can include that. A try-catch wrapper would be in order here,
too. It is not even clear if try-catch is even necessary here. Apparently
they are taking precautions against their own incompetence (ga.js does not
load properly), which a feature test could handle easily, like

if (typeof _gat != "undefined")
var pageTracker = _gat._getTracker("UA-NNNNNNNN-N");

> --- news:// - complaints: news(a) ---

Would it be possible to get rid of that in the future, please?

Use any version of Microsoft Frontpage to create your site.
(This won't prevent people from viewing your source, but no one
will want to steal it.)
-- from <> (404-comp.)