Почему document.write считают “плохой практикой”?

Следующее, что вам нужно сделать, это разделить ваш ввод с помощью дельтиметра (в вашем случае ',') на вектор и затем объединить все с префиксами и посфиксами. C ++ не поддерживает разбиение по умолчанию, вам придется проявить творческий подход или искать решение, подобное здесь .

355
задан Taryn 22 March 2017 в 06:21
поделиться

9 ответов

http://dotnetcoderoom.wordpress.com/2008/11/07/unable-to-validate-data-aspnet-error/

Причина: Основной причиной этого является различие ключа при шифровании и дешифровании данных состояния просмотра. Предположим, что asp.net визуализировал страницу с ключом 1 и сохранил состояние страницы в состоянии просмотра, в то время как ключ asp.net изменяется на ключ 2, теперь, когда на странице будет происходить какое-либо событие на стороне сервера, состояние представления будет расшифровано, и эта ошибка возникнет как старое состояние просмотра теперь недопустимо из-за другого ключа шифрования.

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

Решение он не может внедрить в заданной точке узла

  • DW эффективно пишет сериализованный текст, что не является концептуальным способом работы DOM, и это простой способ создавать ошибки (.innerHTML имеет ту же проблему)

  • Гораздо лучше использовать безопасные и дружественные к DOM методы манипулирования DOM

    239
    ответ дан 23 November 2019 в 00:22
    поделиться

    Я не думаю с помощью document.write, плохая практика вообще. В простых словах это похоже на высокое напряжение для неопытных людей. При использовании его неправильный путь Вы приготовлены. Существуют многие разработчики, которые использовали это и другие опасные методы, по крайней мере, однажды, и они никогда действительно роют в их отказы. Вместо этого когда что-то идет не так, как надо, они просто прыгают с парашютом и используют что-то более безопасное. Это - те, кто делает такие операторы о том, что считают "Плохой Практикой".

    Это похоже на форматирование жесткого диска, когда необходимо удалить только несколько файлов, и затем говорящий "форматирующий диск плохая практика".

    0
    ответ дан 23 November 2019 в 00:22
    поделиться

    Он разбивает страницы с использованием рендеринга XML (например, страниц XHTML).

    Лучший : некоторые браузеры переключаются обратно на рендеринг HTML, и все работает нормально.

    Вероятно : некоторые браузеры отключают функцию document.write () в режиме рендеринга XML.

    Наихудший : некоторые браузеры выдают ошибку XML всякий раз, когда используют функцию document.write ().

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

    Pro:

    • Это самый простой способ встроить встроенный контент из внешнего (на ваш хост / домен) сценария.
    • Вы можете перезаписать весь контент в фрейме / фрейме. Раньше я часто использовал эту технику для элементов меню / навигации, прежде чем более современные методы Ajax стали широко доступны (1998-2002).

    Con:

    • Он сериализует механизм рендеринга для приостановки, пока не будет загружен внешний скрипт, который может занять гораздо больше времени, чем внутренний скрипт.
    • Обычно он используется таким образом, что скрипт помещается в контент, который считается дурным.
    30
    ответ дан 23 November 2019 в 00:22
    поделиться

    There's actually nothing wrong with document.write, per se. The problem is that it's really easy to misuse it. Grossly, even.

    In terms of vendors supplying analytics code (like Google Analytics) it's actually the easiest way for them to distribute such snippets

    1. It keeps the scripts small
    2. They don't have to worry about overriding already established onload events or including the necessary abstraction to add onload events safely
    3. It's extremely compatible

    As long as you don't try to use it after the document has loaded, document.write is not inherently evil, in my humble opinion.

    121
    ответ дан 23 November 2019 в 00:22
    поделиться

    I think the biggest problem is that any elements written via document.write are added to the end of the page's elements. That's rarely the desired effect with modern page layouts and AJAX. (you have to keep in mind that the elements in the DOM are temporal, and when the script runs may affect its behavior).

    It's much better to set a placeholder element on the page, and then manipulate it's innerHTML.

    -3
    ответ дан 23 November 2019 в 00:22
    поделиться

    It overwrites content on the page which is the most obvious reason but I wouldn't call it "bad".

    It just doesn't have much use unless you're creating an entire document using JavaScript in which case you may start with document.write.

    Even so, you aren't really leveraging the DOM when you use document.write--you are just dumping a blob of text into the document so I'd say it's bad form.

    6
    ответ дан 23 November 2019 в 00:22
    поделиться

    Off the top of my head:

    1. document.write needs to be used in the page load or body load. So if you want to use the script in any other time to update your page content document.write is pretty much useless.

    2. Technically document.write will only update HTML pages not XHTML/XML. IE seems to be pretty forgiving of this fact but other browsers will not be.

    http://www.w3.org/MarkUp/2004/xhtml-faq#docwrite

    5
    ответ дан 23 November 2019 в 00:22
    поделиться

    Вот мои два пенса, в общем, вы не должны использовать document.write для тяжелой работы, но есть один случай, когда это определенно полезно:

    http : //www.quirksmode.org/blog/archives/2005/06/three_javascrip_1.html

    Я обнаружил это недавно, пытаясь создать галерею слайдеров AJAX. Я создал два вложенных div и применил width / height и overflow: hidden к внешнему

    с помощью JS. Это было сделано для того, чтобы в случае, если в браузере отключен JS, div будет плавать, чтобы разместить изображения в галерее - приятная изящная деградация.

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

    Очевидно, что это не будет работать в XHTML, но поскольку XHTML кажется чем-то вроде мертвой утки (и отображается как суп тегов в IE), возможно, стоит пересмотреть ваш выбор DOCTYPE ...

    9
    ответ дан 23 November 2019 в 00:22
    поделиться
    Другие вопросы по тегам:

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