Почему браузер иногда делает сайт плохим, а иногда хорошим? (без изменения браузера, только динамические данные не обновляются) - PullRequest
2 голосов
/ 02 ноября 2009

У меня есть веб-сайт, обычно все выглядит нормально, но иногда один div находится не в том месте ... Пока я думал, что причина в AJAX (когда document.ready загружает текст приветствия), но теперь этот скрипт отключен и проблема все еще существовать.

Пока что я заметил это только на последнем Firefox. У кого-нибудь еще была похожая проблема? Это вина бесплатного хостинга (и может быть, какой-то пакет потерян ...?) (Проверено на http://60free.ovh.org и http://www.000webhost.com/)

EDIT: Я имею в виду только ОДИН браузер и 2 разных результата рендеринга. Я знаю, это очень странно ...

* +1010 * EDIT2: Посмотрите на этот скриншот: Первый плохой: http://img682.imageshack.us/img682/866/badxz.png, и хороший, только после обновления страницы, (я не использую серверные языки) http://img20.imageshack.us/img20/3992/goodtpxz.png

EDIT3: В аддонах веб-разработчиков я проверил disable cache

EDIT4: Вот страница http://www.XYZ.eu/

Ответы [ 10 ]

7 голосов
/ 02 ноября 2009

Нет, это не проблема бесплатного хостинга. Браузеры просто отображают вещи по-другому, вот как это работает. Вы должны изучить причуды различных браузеров и научиться справляться с ними.

Вы, вероятно, не должны касаться AJAX или даже JS, пока не узнаете, как хорошо понимаете HTML и CSS.


Редактировать: Ваши разъяснения полностью меняют природу этого вопроса. В этом случае это звучит как проблема кеширования. Я бы сначала попытался очистить кеш вашего браузера. Если это не сработает, это может быть кэширование на стороне сервера? Вы ждете полной загрузки страницы? Материал иногда перемещается, когда страница продолжает загружаться, если он зависает до того, как закончил, может произойти нечто подобное В противном случае я не совсем уверен.

Если ничего из этого не работает, измените дизайн: p Похоже, вы полагаетесь на измерения с идеальной точностью пикселей, и этот правый div выталкивается, когда ему не хватает места. Если вы сможете избежать подобных сценариев, ваша страница станет немного более устойчивой к незначительным изменениям.


Если подумать, это может быть побочным эффектом бесплатного хостинга (но не из-за "потерянных пакетов"). Вставляет ли ваш хост рекламу или сценарии на вашу страницу?

3 голосов
/ 02 ноября 2009

Глядя на ваши скриншоты, я считаю, что наиболее вероятной причиной является разница в полях div по умолчанию в IE и FF.

При работе с проблемами Firefox используйте Firebug , чтобы редактировать CSS в реальном времени и видеть изменения, когда вы их делаете.

Попробуйте установить div {margin:0;padding:0;} на минуту, чтобы посмотреть, изменится ли это к лучшему.

1 голос
/ 02 ноября 2009

Div часто отличаются в FF и IE, у меня была проблема очень часто, и мне нужно много много времени, чтобы потратить на это.

Считает, что может помочь вам:

  • IE и FF имеют панель инструментов DEV, внутри которой вы можете увидеть очень много информации о DIV-Conatainers

  • Одна вещь, которая делает мой div плохим, это float, высота и ширина - когда вы забыли один из них в другом div, ваша «проблема» - div может быть неправильной из-за этого

Дайте нам ваш div и ваш CSS, и мы сможем узнать больше


Я вижу кое-что очень интересное в Opera: когда страница загружена, ваше меню на левом сайте на один момент полностью открывается (все ~ 10 ссылок). Может ли быть так, что в FF место для этих ссылок будет вычислено один раз, что больше, чем разрешено для div-меню и приводит к тому, что фрейм "About" будет глупым ?! (Только идея) -

0 голосов
/ 02 ноября 2009

Вы меняли ширину окна браузера между загрузками? Если бы вы это сделали, это могло повлиять на расположение плавающих элементов.

0 голосов
/ 02 ноября 2009

Firefox содержит так называемую ошибку CSS в Slashdot. Иногда может случиться так, что браузер требует размер чего-либо, прежде чем его динамический контент будет полностью загружен для предварительного рендеринга. В этом случае он рендерит на основе того, что у него есть. Не так уж и плохо, но вот что важно: когда контент полностью загружен, браузер не пересчитывает значение, вызывающее иногда ужасную визуализацию, которая не может быть реплицирована локально.

РЕДАКТИРОВАТЬ: вот другое описание: http://sourceforge.net/tracker/index.php?func=detail&aid=2808234&group_id=4421&atid=104421

0 голосов
/ 02 ноября 2009

Звучит как проблема кеширования. Возможно, вы пытались максимизировать ширину, используемую вместе с плавающими элементами.

Иногда такого рода вещи могут происходить, когда вы меняете файл CSS, и ваш браузер не думает перезагружать его, потому что имя файла не изменилось, а размер файла не изменился настолько, чтобы ваш браузер повторно загрузил это.

Более подробную информацию о том, как очистить кэш, можно найти http://kb.iu.edu/data/ahic.html

0 голосов
/ 02 ноября 2009

Проверьте размер шрифта, установленный в каждой копии Firefox. Если поля или ширина DIV указаны в ems, то они относятся к размеру шрифта, установленному в браузере. Попробуйте уменьшить размер шрифта FF, когда DIV выглядит странно, он должен вернуться на свое место, предполагая, что это не так.

0 голосов
/ 02 ноября 2009

Причина, по которой большинство браузеров по-разному отображают страницы, заключается в их механизме визуализации. Например, у нас есть WebKit в Safari и Gecko в Mozilla. Оба эти механизма рендеринга ожидают и обрабатывают вещи по-разному в зависимости от того, как они были построены.

Однако в вашей ситуации кажется, что ваш браузер путается с кешем и содержимым на стороне сервера. Как и другие, пытаясь очистить кеш для начинающих, затем копайтесь в исходном коде, если это не поможет.

0 голосов
/ 02 ноября 2009

Firefox отлично справляется с рендерингом HTML и CSS 2.1 (см. Тест Acid2 ), поэтому (без обид здесь) я бы предпочел обвинить ваш CSS.

0 голосов
/ 02 ноября 2009

Проблема в том, что браузеры не соответствуют стандартам CSS. Некоторые браузеры, такие как Firefox, Chrome и Safari, почти соответствуют стандартам. Другие, такие как Internet Explorer, не соответствуют стандарту.

Единственный вариант, который у вас есть, - это попробовать разные вещи, пока он не будет работать для каждого браузера. Не могли бы вы дать нам образец своего HTML и CSS, чтобы мы могли помочь вам в этом?

...