Justin_Hill@graduates.iti.com (jmhill) wrote:
[color=blue]
>Has anyone else had this issue? Basically, the preload of images for a
>rollover effect for the navigation is really really slow when using IE
>6.0 but when i view the site using Netscape, it's fast like it should
>be(no lag!)
>
>My problem is that since 96% of users use IE, i need to figure a way
>to fix this. Below is the javascript currently being used. The
>arguments are passed in before the script is called.
>
>MM_preloadImages(
>'<%=assets_path%>/left_nav/manage_view_wthr_on.gif',
>'<%=assets_path%>/left_nav/manage_admin_guide_on.gif',
>'<%=assets_path%>/left_nav/manage_terms_cond_on.gif',
>'<%=assets_path%>/left_nav/manage_reports_on.gif',
>'<%=assets_path%>/left_nav/manage_account_info_on.gif',
>)
>
>
>function gn_rollover_preload(){
> //preloads middle images for the navigation
> if (document.images){
> var argLength = gn_rollover_preload.arguments.length;
>
> for (arg=0; arg < argLength; arg++){
> eval(arguments[arg] + "_off = new Image()");
> eval(arguments[arg] + "_on = new Image()");
> eval(arguments[arg] + "_left = new Image()");
> eval(arguments[arg] + "_right = new Image()");
>
> eval(arguments[arg] + "_off.src = '" + ASSET_PATH_HEADER +
>"button_nav_"+ arguments[arg] + "_off.gif'");
> eval(arguments[arg] + "_on.src = '" + ASSET_PATH_HEADER +
>"button_nav_"+ arguments[arg] + "_on.gif'");
> eval(arguments[arg] + "_left.src = '" + ASSET_PATH_HEADER +
>"button_nav_"+ arguments[arg] + "_left.gif'");
> eval(arguments[arg] + "_right.src = '" + ASSET_PATH_HEADER +
>"button_nav_"+ arguments[arg] + "_right.gif'");
> }[/color]
Don't use eval. It's slow an error prone. I've seen only 2 cases
where eval was required and everything else can be written better a
different way.
var preloadedImgs = new Object();
for (arg=0; arg < argLength; arg++)
{
preloadedImgs[arguments[arg] + "_off"] = new Image()";
preloadedImgs[arguments[arg] + "_on"] = new Image()";
preloadedImgs[arguments[arg] + "_left"] = new Image()";
preloadedImgs[arguments[arg] + "_right"] = new Image()";
preloadedImgs[arguments[arg] + "_off"].src = ASSET_PATH_HEADER
+
"button_nav_"+ arguments[arg] + "_off.gif";
preloadedImgs[arguments[arg] + "_on"].src = ASSET_PATH_HEADER
+
"button_nav_"+ arguments[arg] + "_on.gif";
preloadedImgs[arguments[arg] + "_left"].src =
ASSET_PATH_HEADER +
"button_nav_"+ arguments[arg] + "_left.gif";
preloadedImgs[arguments[arg] + "_right"].src =
ASSET_PATH_HEADER +
"button_nav_"+ arguments[arg] + "_right.gif";
}
[color=blue]
> // Now Preload all "corner" images for faster swapping
> corner1 = new Image();
> corner2 = new Image();
> corner2_both = new Image();
> corner3 = new Image();
> corner3_both = new Image();
> corner4 = new Image();
> corner4_both = new Image();
> corner5 = new Image();
>
> corner1.src = eval("'" + ASSET_PATH_HEADER +
>"button_nav_corner_1.gif'");
> corner2.src = eval("'" + ASSET_PATH_HEADER +
>"button_nav_corner_2.gif'");
> corner2_both.src = eval("'" + ASSET_PATH_HEADER +
>"button_nav_corner2_both.gif'");
> corner3.src = eval("'" + ASSET_PATH_HEADER +
>"button_nav_corner_1.gif'");
> corner3_both.src = eval("'" + ASSET_PATH_HEADER +
>"button_nav_corner3_both.gif'");
> corner4.src = eval("'" + ASSET_PATH_HEADER +
>"button_nav_corner_1.gif'");
> corner4_both.src = eval("'" + ASSET_PATH_HEADER +
>"button_nav_corner4_both.gif'");
> corner5.src = eval("'" + ASSET_PATH_HEADER +
>"button_nav_corner_2.gif'");[/color]
Get rid of eval. It does absolutely nothing here but slow you down.
http://msdn.microsoft.com/library/en...6jsmtheval.asp
Regards,
Steve