У кого-либо есть идеи для решения “n объекты, остающиеся” проблемой на Internet Explorer?

Преобразование обсуждения из комментариев здесь:

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

Тот же принцип применим к (хорошо спроектированным) внешним библиотекам, таким как связанные django-two-factor-auth.

Вначале вы просто используете представленные в нем представления, вероятно, непосредственно include() с помощью модуля urls .

Затем, если вам нужно что-то настроить в этих представлениях, вы наследуете от этого представления, например,

from two_factor.views import LoginView

class MyLoginView(LoginView):
    template_name = 'super_fancy_login_template.html'
    form_list = (
        ('auth', MyAwesomeAuthenticationForm),
        # ... the rest from the original here ...
    )

и подключите его в urls перед представлением библиотеки по тому же пути:

from django.conf.urls import url
from my_awesome_app.views import MyLoginView

urlpatterns = [
    url(
        regex=r'^account/login/ 

и эй presto, вы заменили смотреть со своим.

Очевидно, что чем больше вы заменяете подобные детали, тем меньше у вас появляется «гарантия» (а не на то, что на ПО с открытым исходным кодом вообще предоставляется гарантия;)), что все по-прежнему работает так, как должно.

, view=MyLoginView.as_view(), name='login', ), include(...), ]

и эй presto, вы заменили смотреть со своим.

Очевидно, что чем больше вы заменяете подобные детали, тем меньше у вас появляется «гарантия» (а не на то, что на ПО с открытым исходным кодом вообще предоставляется гарантия;)), что все по-прежнему работает так, как должно.

31
задан CMPalmer 20 April 2009 в 15:54
поделиться

6 ответов

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

Я не уверен, является ли это проблемой для вас или нет, но это проявилось в похожей ситуации. образом.

7
ответ дан 27 November 2019 в 22:45
поделиться

Я использовал этот в прошлом с большим успехом. Вы также можете проверить этот пост в блоге.

4
ответ дан 27 November 2019 в 22:45
поделиться

ЕСЛИ вы используете ВСЕГДА в вашем коде поведения (или библиотека, которую вы используете их) например,

<style>
  body * {
    behavior:url(anyfile.htc);
  }
</style>

Тогда есть НЕТ решения , о котором я знаю, и сообщение об ошибке , поданное в IE Feedback on Connect для IE8 (и IE7), было отклонено для обоих выпусков со следующим общим консервативным оператором:

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

С уважением, Команда IE

Так как это тот же самый ответ, полученный для разработки IE7, я не буду задерживать дыхание на КОГДА-ЛИБО с этим исправленным.

Обновление:

Еще одна мысль, основанная на вашем обновлении ноты. Если страница не совсем отзывчива, как будто она все еще что-то загружает, проверьте визуализированное содержимое DOM на наличие вызовов document.write () {вы, возможно, не добавили их, но библиотека может иметь }.

Если они существуют, попробуйте добавить оператор document.close (); после их завершения, это сообщит браузеру, что вы «сделали» рендеринг.

PS вот ссылка Вы можете сохранить в виде закладки (щелкните правой кнопкой мыши «Добавить в избранное ...»), которая покажет вам сгенерированный DOM в том виде, в котором его видит IE (безобразная quoteLess = CaMelCaSeMeSS), выполнив поиск по результату, чтобы найти какой-нибудь изворотливый код, который может быть причиной проблем.

IE Generated Source: (добавьте это как местоположение для любой закладки, редактор не позволит мне связать ее)

javascript:'<xmp>'+window.document.body.parentNode.outerHTML+'</xmp>';
10
ответ дан 27 November 2019 в 22:45
поделиться

It is to do with the "fix" for transparent PNGs in IE.

I was having this same problem with a site im working on and soon found there is no valid solution that fixes both this issue and the Transparent PNG images.

3
ответ дан 27 November 2019 в 22:45
поделиться

Что касается кэширования изображений, мне пришлось использовать обработчик HTTP, чтобы правильно кэшировать изображения. В частности, в меню CSS было изображение стрелки, которая вызывала бы точное поведение, с которым вы имеете дело, поскольку оно использовалось несколько раз в каждом меню.

Вот код для обработчика: http: //www.groovybits.com/SrcViewer.aspx?inspect=~/PersistantImage.ashx

Вы используете его, добавив AppSetting в web.config :

<add key="UniqueImageName" value="~/Images/image_name.gif"/>

И ссылаться на источник каждого изображения, используя обработчик вместо пути к самому изображению:

~/Handlers/PersistantImage.ashx?key=UniqueImageName
3
ответ дан 27 November 2019 в 22:45
поделиться

У этого парня отличная статья о проблемах с кешированием IE6 , но блог, похоже, не работает.

Он разделил проблему на две части:

  1. IE6 мерцание фонового изображения
  2. Ошибка / функция IE: Кэш Internet Explorer не используется, когда вы запускаете код innerHTML для многократной вставки одного и того же изображения . Microsoft предлагает два очень плохих обходных пути (а в моем случае они даже не сработали), но вы также можете обойти это, убедившись, что вы не вставляете теги через innerHTML.

Естественным решением проблемы №2 является использование фонового изображения вместо тегов ; коварно, это приведет вас прямо к проблеме №1; в результате вы можете решить проблему №2, ошибочно полагая, что у вас нет прогресса.

В моем случае я решил обе проблемы сразу, заменив свои теги innerHTML на теги

, которые имели background- image и использовали document.execCommand ("BackgroundImageCache", false, true) для устранения мерцания.

1
ответ дан 27 November 2019 в 22:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: