Другими словами, вы спрашиваете, почему браузеру A требуется больше времени, чем браузеру B, чтобы сделать точно такой же сигнал.
Ну, они НЕ делают то же самое.Вы пишете в своем сценарии то, что хотите, и выбранный вами браузер делает все возможное, чтобы это произошло, но вы практически не контролируете, как это происходит.
Браузеры написаны разными командами с разной философией того, как делать вещи.Ваш 20-строчный сценарий может потребовать 10000 процессорных циклов в браузере A и 50000 в браузере B в зависимости от того, как написан код браузера и как он работает.
Чтобы дать подробный ответ, почему IE8 медленнее по сравнению с FF в этом случае, нужно посмотреть, что происходит.Поскольку исходный код для IE8 не является общедоступным, мы не можем искать там, и я не знаю, есть ли какая-либо документация, достаточно подробная, чтобы рассказать, что происходит.
Вместо этого я приведу вам примеро том, как две разные философии того, как делать вещи, сильно влияют на время, чтобы произвести тот же конечный результат.Примечание. Это пример, и любое сходство с реальным миром является чисто случайным.
Что делать:
- получить размеры изображения.
Команда A:
- Загрузка файла из указанного источника
- декодирование изображения в память
- возврат ширины ивысота изображения
Ничего плохого в этом нет?Он возвращает ширину и высоту изображения.Может ли команда сделать это лучше?
Команда B:
- Загрузить первые 1024 байта файла в память
- Определить формат изображения
- это JPEG?получить заголовок FFC0, сохранить ширину и высоту
- это png?найти заголовок, сохранить ширину и высоту
- это GIF?найти заголовок, сохранить ширину и высоту
- вернуть ширину и высоту изображения
Их код также возвращает ширину и высоту изображения, но они делаютэто по-другому, что в несколько раз быстрее, чем код, который написала команда А: в память загружается только начало файла, а размеры берутся из заголовка без декодирования изображения.Это экономит полосу пропускания, память и время.
Итак, какой из них лучший?Код от команды А или команды Б?Подумайте об этом на мгновение, пока обе команды запускают свой код на 100 000 изображений .... Может потребоваться какое-то ... о, команда Б уже завершила!Они говорят, что 10% изображений были меньше, чем 50x60 пикселей, и что они не могли открыть 3 из них.Как насчет команды А тогда?Похоже, нам нужно немного подождать ... может быть, чашка кофе?
[10 минут спустя]
Полагаю, вы считаете, что команда B написала лучший код, я прав или нет?
Команда A говорит 8% отизображения были меньше, чем 50x60 пикселей.Странно, это не то, что сказала команда В.Команда А также говорит, что они не могли получить размер 20% изображений, потому что эти файлы были повреждены.Это то, о чем команда B ничего не сказала ...
Так какой код, по вашему мнению, был лучшим?
Я прошу прощения за языковые ошибки, английский не мойродной язык.