2008-10-27 2 views
0

UPDATE: Спасибо всем за ответы. Я не знал, что document.write() устарел. Добавьте еще одну метку в колонку обучения. Я возьму совет, размещенный здесь, но оставлю исходный вопрос, чтобы полученные ответы имели смысл в контексте исходного вопроса.Каков наилучший способ обработки длинных аргументов write()?


Я нахожусь в процессе кодирования некоторые довольно долго писать() аргументы и пытаюсь решить, какие из следующих примеров было бы лучше следовать, с учетом синтаксиса, читаемость и производительность. Должен ли я

a. Держать их всех в одной строке:

<script> 

    var someVariable = "(<a href=\"http://www.example.com\">Link<\/a>)"; 

    document.write("<p>Supergroovalisticprosifunkstication and Supercalifragilisticexpialidocious are very long words.</p>" + someVariable + "<p>Dociousaliexpisticfragilicalirepus is Supercalifragilisticexpialidocious spelled backwards.</p>" + someVariable); 

</script> 

b. Разбейте их, добавив разрывы строк для некоторой улучшенной читаемости:

<script> 

    var someVariable = "(<a href=\"http://www.example.com\">Link<\/a>)"; 

    document.write("<p>Supergroovalisticprosifunkstication and Supercalifragilisticexpialidocious are very long words.</p>" 
     + someVariable 
     + "<p>Dociousaliexpisticfragilicalirepus is Supercalifragilisticexpialidocious spelled backwards.</p>" 
     + someVariable); 

</script> 

c. Разбить их, используя несколько переменных:

<script> 

    var someVariable = "(<a href=\"http://www.example.com\">Link<\/a>)"; 

    var partOne = "<p>Supergroovalisticprosifunkstication and Supercalifragilisticexpialidocious are very long words.</p>"; 
    var partTwo = "<p>Dociousaliexpisticfragilicalirepus is Supercalifragilisticexpialidocious spelled backwards.</p>"; 

    document.write(partOne + someVariable + partTwo + someVariable); 

</script> 

Заранее благодарен.

+0

@CodeCurious - Не удаляйте исходный вопрос, потому что он затрудняет понимание того, о чем были ответы. Этот веб-сайт должен быть полезен многим людям, которые приходят после вас, но было бы трудно понять, что это было без исходной информации. – 2008-10-27 20:30:58

ответ

3

Моя реакция кишки: не делаем это. (Ваш пример плохой, вы не должны писать большие куски содержимого в вашем поведении слоя.)

Всякий раз, когда вы должны сделать это, либо CONCAT:

var longVar = 'asdfasdf asdf asdf asdfasdf asdfasdf asdf asdfasdf' + 
    ' fasdf s9d0af asdf asdf0s,dv z-xcfva-sdfmwaert ' + 
    'qersdfasdfasdfasdfasdf'; 
document.write(longVar); 

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

var longVar = [ 
    'asdfasdf asdf asdf asdfasdf asdfasdf asdf asdfasdf', 
    ' fasdf s9d0af asdf asdf0s,dv z-xcfva-sdfmwaert ', 
    'qersdfasdfasdfasdfasdf' 
].join(''); 
document.write(longVar); 
0

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

Таким образом, идеи для повышения производительности: - обеспечить, чтобы скрипт был минимализирован. - сделайте столько предварительной обработки на сервере и обслуживайте «обработанный» скрипт.

Используя инструмент миниатюры (например, jsMin), вы не будете страдать от каких-либо проблем, имея пробелы и разрывы строк для удобства чтения.

0

- и это плохой пример для использования document.write(), как он относится к 90ties и осуждался с введением HTML4 в 1998 году ...

Если есть что-нибудь на стороне сервера, то лучше обрабатывать код есть ... поколения

по вопросу о конкатенации строк Я согласен с eyelidlessness! -)

EDIT (29/10)

Как комм (мне нужна кодовая обозначение)

<script type="text/javascript"> 
    window.onload = function(){ 
    var newD = document.createElement("div"); 
    newD.appendChild(document.createTextNode("Hello World")); 
    document.getElementsByTagName("body")[0].appendChild(newD); 
    } 
</script> 

Таким образом, что-либо вставляется в документ ...

+0

Что было заменено? – cciotti 2008-10-27 20:37:33

Смежные вопросы