Проблема с зависанием Superfish в IE6 и Apache Logs - PullRequest
0 голосов
/ 23 августа 2010

Я использую меню jQuery Superfish на ie6, и из того, что я вижу по файлам журналов Apache для моего сеанса, это то, что всякий раз, когда я наводю курсор мыши на элемент меню в моем меню Superfish, у которого есть подменю, изображенные с элементом меню, которыйимеет изображение стрелки в виде белой стрелки справа от метки пункта меню, вся куча (скажем, 25 строк) записей журнала выплевывается со следующим сообщением типа:

- - [23/Aug/2010:11:57:45 +1000] "GET /abcprod/images/arrows-ffffff.png HTTP/1.1" 304 - etc…..

Я также не уверен, какое число 304 указывает, где в журнале Apache?

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

Странно то, что при запуске приложения через Google Chrome и проверке этого сеанса в журналах Apache оно выдает все, что связано с изображением arrow-ffffff.png.

Что здесь происходит с ie6 вместе с наведением меню Superfish?

К вашему сведению, я также включил CSS, который пользователи Superfishотносящиеся к классу f-субиндикатор, то есть

.sf-sub-indicator {
position:       absolute;
display:        block;
right:          .75em;
top:            1.05em; /* IE6 only */
width:          10px;
height:         10px;
text-indent:    -999em;
overflow:       hidden;
    background:     url("/abcprod/images/arrows-ffffff.png") no-repeat -10px -100px;
}
==>
a > .sf-sub-indicator {  /* give all except IE6 the correct values */
    top:            .8em;
    background-position: 0 -100px; /* use translucent arrow for modern browsers*/
}

/* apply hovers to modern browsers */
a:focus > .sf-sub-indicator,
a:hover > .sf-sub-indicator,
a:active > .sf-sub-indicator,
li:hover > a > .sf-sub-indicator,
li.sfHover > a > .sf-sub-indicator {
    background-position: -10px -100px; /* arrow hovers for modern browsers*/
}

Ответы [ 2 ]

1 голос
/ 11 октября 2010

Поскольку IE6 не поддерживает : hover псевдо-селекторы, я предполагаю, что superfish использует какой-то браузер для анализа поведения, специфичного для IE (что-то вроде this ) ,

Проблема в том, что правила наведения CSS преобразуются в выражения javascript, и я предполагаю, что IE достаточно глуп, чтобы запрашивать новый img каждый раз, когда поведение javascript преобразует элемент.

Возможным решением будет гарантировать, что javascript только переключает некоторый класс (скажем, добавляет класс .hover ), а затем позволяет CSS применять фон к селектору классов. Пример: a:hover становится a.hover.

0 голосов
/ 23 августа 2010

Не уверен насчет специфики SuperFish в контексте IE6 (не правда ли, aleady? (-;) и jQuery, но «304» - это HTTP-код, например 404, 403 и т. Д. 304 означает, что файл не был изменен с момента последнего запроса. Удобен для кэширования, сокращения запросов к серверам и т. д.

Подробнее о кодах состояния здесь:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Возможно, IE6 делает запрос "GET" для этого изображения, когда меню активировано ...? Он запрашивает один и тот же файл 25 раз ...? Активируйте первое подменю со стрелками и посчитайте количество стрелок. Затем проверьте журналы. Если количество записей в журнале равно количеству стрелок, вы знаете, что делает IE6.

...