stop running this script message on IE 8
I am using ExtJs 4.1 framework.
While rendering a page, i randomly see following error message:
stop running this script?" a script on this page is causing your browser to run slowly if it continues to run, your pc might become unresponsive.
I want to understand:
1) What is the cause of this error message ?
2) Is there anyway to get rid of it?
3) Is there any way to identify which section of page or code causing this problem?
4) What is the best way to handle this.
Please provide your suggestion to handle this scenario.
The cause is that your script is taking too long (loop,hung)
Click Advanced Tab
Find "Disable Script Debugging" Check it
Find "Disable a notification about every script error" and uncheck it
You can also increase the timeout:
You can run a profiler or use our PageAnalyzer app included in ExtJS4 to help find the bottleneck.
You need to optimize your application
I once had a trailing comma in a listener config which caused this issue. Most browsers will deal with a trailing comma just fine, but I.E. tends to blow chunks or not render anything, giving you a nice, lovely white page and no meaningful error messages...
Thank you the reply. Now I understand why I am getting this error message. Is there any way to find out which method or piece of code forcing the scripts to run longer? Do we have a good profiler? I tried using Firebug's profiler but it indicates methods available in ExtJS-all.js file.
Have you tried the pageAnalyzer included with 4.1?
I tried using the Performance Analyzer tool but its little difficult to understand the report & there is not much help available on internet. Is there any way to save this report and share it in the forum?
You have to drill down to get accurate results. It can be a bit confusing in the beginning.
There are other options like YSlow if you do not feel comfortable. Plugins are available for FF and chrome.
Ext JS Premium Member
It seems for me that this script is caused by loops somewhere inside core ExtJS during rendering.
I have grid with locked columns . 2 of them locked and about 30 unlocked. If I have 500 rows to render I have "Stop running this script" popup twice. One when locked part is rendered second when normal is rendered.
I changed all my columns to grid columns with direct dataIndex.(before I had templates and custom rendering column and I suspected them to generate issue).
If you add store.suspensEvents() / store.resumeEvents() around the loading of your data, does it help?
You have a lot of data you are trying to render in a grid and IE is just a slow mule.
Ext JS Premium Member
Unfortunately not. And I reduced my locked columns to 2 and normal columns to 5 and it gives me popup fornormal grid even for 300 lines.
I put this around load:
As well I put Ext.suspendLayouts() in beforeLoad and Ext.resumeLayouts() in load listeners
I think there is some kind of loop in render that scares IE8