My wordpress site has a custom built plugin that enables people to compare SIM only deals. The problem is that, on the front end, the deals table takes about 60 seconds load in IE8. It is ten times faster in firefox (about 6 seconds).

The guy that built the plugin says he doesnt know what's wrong with it. I am hoping that someone here will be able to diagnose the problem. I am also open to any other feed back about the efficency of the plugin and how it can be improved. here is the link:

Dani AI

Generated

A short diagnostic and fix plan that complements the thread: the slowdown seen on 's site is the classic case where relatively normal table rendering patterns become painfully slow on older IE because of heavy DOM churn and repeated per-cell processing. is correct that IE8 is slower than modern browsers, but that alone is not an excuse — profiling and targeted refactoring (as recommended) will point to the real hotspots.

Practical diagnostic steps:

  • Swap the minified scripts for unminified builds so stack traces are readable and run a JS profiler (IE8 F12 tools or Visual Studio script profiler) to find the single slow function.
  • Reproduce with a minimal static table (server-side rendered HTML) and with fewer rows to see how performance scales.
  • Temporarily disable images and nonessential scripts/styles to rule out asset loading vs DOM/JS cost.
  • Check server-side output for repeated sanitization or formatting inside tight loops; move heavy work out of per-row/per-cell loops.

Targeted fixes that usually help:

  • Batch DOM writes instead of appending row-by-row. Example approaches:
    var html = rows.map(function(r){
    return '<tr><td>' + r.col1 + '</td><td>' + r.col2 + '</td></tr>';
    }).join('');
    table.tBodies[0].innerHTML = html;

    or use a DocumentFragment and append once. Sanitize data once on output, not per cell, to avoid repeated PHP calls.

  • For DataTables, enable client-side rendering optimizations (deferRender) or move to server-side processing / the Scroller extension if the full dataset is large:
    $('#deals').DataTable({
    deferRender: true,
    pageLength: 25,
    processing: true,
    serverSide: true
    });

Operational tips and priorities:

  • Start with profiling; fix the top hotspot first. Caching server-rendered HTML or JSON and serving paged data avoids rendering thousands of DOM nodes in IE8.
  • Ensure a standards doctype and an X-UA-Compatible header to prevent Compatibility View quirks.
    These focused changes typically reduce IE8 load from tens of seconds to a reasonable range without sacrificing other browsers.

Recommended Answers

All 2 Replies

I wouldn't bother with that, it's not a bug, it's an IE performance problem.

IE is pretty slow compared with other browsers, speacially Firefox and Google Chrome.

What could be done is improve the plugin performance itself, then it would load faster in IE and even faster in the other browsers.

Another thing that you could do is alert the user that he should use another browser, or at least update IE to 9 or 10 (9 is faster than 8, and 10 it's faster than 9).

I'd say that IE 10 performance is almost ok in comparisson with other browsers.

Member Avatar for Member #905211

AleMonteiro, maybe you should profile the site before you say that it is IE. Yes IE8 is slower than all other modern browsers, however after running the profiler in the web developer toolbar, I think it is the way you are loading things.

strip_tags gets called 5,910 times and takes 838.05 milliseconds. Why is it called so many times?
In one of the functions in jquery.dataTables.min.js (can't tell what one as you are using a minified version, just says function name is y) is taking 11,359.65 milliseconds (11 seconds) and in that function it is using appendChild, this is what is taking all the time.

If you have numbers like this where things are being called several thousand times, you need to take a look at how you built it and refactor it.

I've been using the jquery.dataTable plugin for some resent projects and it works fine in IE8, IE9, chrome, firefox and I am loading thousand of records into it.

Part of the issue might be the loading of the images that is causing the delay, try preloading them as well.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.