Это происходит из-за того, что все в IE6 выполняется в одном потоке - даже анимация GIF.
Единственный способ убедиться, что gif отображается перед запуском, - отсоединить выполнение.
function longRunningProcess(){
....
hideGif();
}
displayGif();
window.setTimeout(longRunningProcess, 0);
Но это все равно сделает браузер замороженным во время выполнения longRunningProcess
.
Чтобы разрешить взаимодействие, вам нужно будет разбить ваш код на более мелкие фрагменты, возможно, такие как
var process = {
steps: [
function(){
// step 1
// display gif
},
function(){
// step 2
},
function(){
// step 3
},
function(){
// step 4
// hide gif
}
],
index: 0,
nextStep: function(){
this.steps[this.index++]();
if (this.index != this.steps.length) {
var me = this;
window.setTimeout(function(){
me.nextStep();
}, 0);
}
}
};
process.nextStep();