| Home | Table of Contents | Please view with Internet Explorer (version 5.00 or higher) and enable scripting. For reasons, see Browsing This Web Site. |
Every page at this site should present acceptably on its own, but navigational support comes with some impositions on your browser.
It is surely uncontentious and perhaps not even worth mentioning, but the pages at this site simply assume support for frames and cascading style sheets (CSS). This means that I do not defend against browsers that do not support frames and CSS, nor even provide for graceful degradation in response to them.
More contentious is that navigational support depends on scripting. However, I anticipate that scripting may be disabled and I intend that what you see without scripting should still be usable. Though the navigational support will be greatly reduced, you may be sure of seeing all of each page’s text or at least a notice that there is more to see. This site is not one of those, which are much too frequently encountered, that give you a blank page because you had the temerity to browse with scripting disabled.
In practice, and certainly contentious, the scripts at this site will very likely run as intended only when the browser is Internet Explorer. I have set out to avoid features that are marked in Microsoft’s documentation as requiring very recent versions of Internet Explorer. After some slight alterations, I have at least checked briefly that the scripts seem to work with Internet Explorer versions as far back as 5.0 (from Windows 2000). However, I have paid absolutely no attention to compatibility with other browsers. If the scripts “don’t work” for some other browser, then please write to me about it, but please also realise that there is very likely nothing I will do about it any time soon. To get the things to run even vaguely as I intend has already been far more trouble than I imagined—and that’s just with attention confined to Internet Explorer.
All the scripts are specifically in Microsoft’s JScript language. In writing them, very much as a novice, my reference material has been Microsoft’s, both for JScript and for what Microsoft has made scriptable in HTML. I may some day review the scripts for at least theoretical conformance to published standards or (less likely) to the documentation of various browsers. However, attending to this could never be more than second to building the site’s content, and it will more likely always be the lowest of low priorities. I simply do not have the resources—or, frankly, the will—to test browser after browser after browser. Indeed, I don’t have the will even to possess multiple browsers, and I don’t understand why anyone would.
If you think that by dismissing other browsers I pander to Microsoft’s dominance, I ask that you please consider that I have done very much more than my fair share over many years to expose freely the sorts of programming details that are essential knowledge for any informed assessment of what Microsoft actually does in its software. Of well over a thousand pages of content at this site, almost all report on Microsoft’s products, often with critical comment supported by a technical depth that you likely cannot find elsewhere.
To require scripting is already as much compromise as I care for. Even simple scripts can cause all sorts of trouble, including to leave the browser seem “hung” and to induce the browser into stress conditions.
For instance, click on the “Show Demonstration” button immediately below to reveal both a small script and a “Run Demonstration” button. Click the button to run the script, which is just a simple function that keeps reallocating memory for an ever-larger string. Because the size increases only by one character each time, this loop executes only very slowly, such that it is quite some time (hours, even) before Internet Explorer’s few defences against hung scripts get triggered. Meanwhile, the browser is for most practical purposes hung. You will likely want to close it from the Task Manager rather than wait for Internet Explorer to notice that anything is wrong.
There is a demonstration here. To see it, refresh this page but allow scripts to run.
The second demonstration is very similar, but places the browser under more stress and triggers the browser’s defences much sooner. In this script, the string is doubled in size on each loop. Before very long, the browser is seeking such large amounts of memory for this string that all its requests are failed. Yet the script is not aborted. Each loop continues to execute, but relatively fast. The tally of executed statements quickly reaches a configurable (but apparently undocumented) limit, so that the browser finally alerts you and offers to stop running the script. (You should accept this offer.)
There is a demonstration here. To see it, refresh this page but allow scripts to run.
Note that scripts can get run in all sorts of ways that may not be obvious to you while you read a page. Clicking here will run the first of the preceding demonstrations. Just passing the mouse over here will run the second.
If you browse this site with caching disabled, your experience will be very much poorer. I imagine it would be poorer just from repeated requests for scripts and style sheets, but you will be hit especially hard by asking over and over for tiny image files in the Table of Contents. Rightly or wrongly, the Table of Contents is designed with the expectation that the whole thing is downloaded once and cached.
Nothing at this site cares about your settings for things like cookies and Java applets, and certainly not for ActiveX controls and plug-ins. I try never to let these things loose on my computer when I browse the web, and I grumble at the many sites that misbehave, even embarrassingly badly, when these things are disabled. I therefore will not push them onto anyone else.
If you find anything at this site that causes you any concern for your computer’s security, and which isn’t clearly marked as a demonstration, then please believe that I did not intend it and please write to me about it so that I can know to correct it.