Thursday, January 14, 2010

IE 7 Scripting Error while running reports or queries with select and search prompt in Cognos 8.4

ERROR DESCRIPTION
----------------------------------

Because some scripts may take an excessive amount of time to run, Internet Explorer prompts the user to decide whether they would like to continue running the slow script. Some tests and benchmarks may use scripts that take a long time to run and may want to increase the amount of time before the message box appears. In Internet Explorer, the script time-out value can be changed on specific client machines by modifying a registry entry.

DESCRIPTION
----------------------------

There are situations when a Web page contains script that takes an unusually long time to run. If you are scripting an ActiveX control on a Web page to transfer a very large file or do a large database query, this will often cause a significantly long delay. Internet Explorer 3.02 detects the long delay and prompts the user with a dialog box reading the following:

This page contains a script which is taking an unusually long time to finish. To end this script now, click Cancel.

ERROR MESSAGE
-------------------

The equivalent message box for Internet Explorer versions 4.0, 5.0, 6, and 7 reads:


A script on this page is causing Internet Explorer to run slowly. If it continues to run, your computer may become unresponsive. Do you want to abort the script?"
This mechanism allows the user to stop misbehaved script that runs into an endless loop or otherwise is performing slowly.


In Internet Explorer 3.02, this message box can appear on machines running Windows 95. The version 3.02 browser is specifically looking to see if the script thread has pumped any windows messages in the last five seconds. There is no way to override this time-out period for Internet Explorer 3.02. If you are using an ActiveX control with long blocking operations, that ActiveX control should either employ an event mechanism and return control to the caller or call PeekMessage every five seconds to reset the time-out.

As of Internet Explorer 4.0 and later versions, the time-out is no longer a fixed value based on Windows messages. Internet Explorer now tracks the total number of executed script statements and resets the value each time that a new script execution is started, such as from a timeout or from an event handler, for the current page with the script engine. Internet Explorer displays a "long-running script" dialog box when that value is over a threshold amount. Internet Explorer doesn’t check on each instruction to see if it is over the limit. Periodically the script engine polls Internet Explorer with the number of statements executed and Internet Explorer checks if that is over the limit. Because of this mechanism, it is possible to execute more than the default limit without the dialog if the entire script execution finishes before the script engine polls Internet Explorer.

Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 (http://support.microsoft.com/kb/322756/ ) How to back up and restore the registry in Windows


To change this time-out value in Internet Explorer 4.0, 5.0, 6, or 7, follow these steps:
Using a Registry Editor such as Regedt32.exe, open this key:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Styles

Note If the Styles key is not present, create a new key that is called Styles.
Create a new DWORD value called "MaxScriptStatements" under this key and set the value to the desired number of script statements. If you are unsure of what value you need to set this to, you can set it to a DWORD value of 0xFFFFFFFF to completely avoid the dialog.

By default the key doesn't exist. If the key has not been added, the default threshold limit for the time-out dialog box is 5,000,000 statements for Internet Explorer 4 and later.

Because the Internet Explorer 4.0, 5.0, 6, and 7 time-out is based on the number of script statements executed, the time-out dialog box will not display during ActiveX control or database-access delays. Endless loops in script will still be detected.

--------------------------------------------------------------------------------

APPLIES TO
Windows 7 Enterprise
Windows 7 Enterprise N
Windows 7 Home Basic
Windows 7 Home Premium
Windows 7 Home Premium N
Windows 7 Professional
Windows 7 Professional N
Windows 7 Starter
Windows 7 Starter N
Windows 7 Ultimate
Windows 7 Ultimate N
Windows Internet Explorer 8
Microsoft Internet Explorer 3.0
Microsoft Internet Explorer 3.01
Microsoft Internet Explorer 3.02
Microsoft Internet Explorer 4.0 128-Bit Edition
Microsoft Internet Explorer 5.0
Microsoft Internet Explorer 5.5
Microsoft Internet Information Services 6.0
Windows Internet Explorer 7

No comments:

Post a Comment