Нужен отзыв на мой JavaScript-код, и приложение идеи реализации


Я новичок в JavaScript и я не уверен, что это хороший подход. Код работает и делает то, что мне нужно это делать, но я уверен, что я не делать вещи правильно.

Можете ли вы дать мне обратную связь об идее реализации и код?

Итак, допустим, что в index.html у меня есть следующий код в раздел тела.

<script type="text/javascript" src="js/main.js" language="javascript"></script>

Содержание файла main.js заключается в следующем:

document.write('<script language="javascript" type="text/javascript" >');

function loaded() {
}

loaded(); 
document.write('</script>');

Я знаю, что с помощью документа.пишу это не умная вещь на всех. Я уверен, что другие вещи неисправен, но я новичок и я ищу ваши отзывы.



521
5
задан 30 января 2011 в 06:01 Источник Поделиться
Комментарии
2 ответа

От быстрого взгляда есть несколько точек, где ваш делать простых ошибок.

// Document.write is bad
document.write('<script language="javascript" type="text/javascript" >');

// use css definitions instead
counter_div.setAttribute('style', 'width: 310px; height: 50px; font-family:lucida,tahoma,helvetica,arial,sans-serif; display: block; overflow:hide;');

// dont set inner html. This is bad. use DOM manipulation instead
title_span.innerHTML = meter_title;

// uses eval here. pass a function rather then a string
setInterval("increment()", interval);

// forgetting to declare addCommas with `var`. This is implecetly global.
addCommas = function(nStr) {

Я должна посмотреть, как изменить это.

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

лучше было бы создать

для заполнения таймер/счетчик.

Рефакторинг частично здесь. Это включает в себя исправление проблем выше плюс делая манипуляций с DOM немного приятнее.

Я не слишком уверен, как это сделать рефакторинг кода таймера.

3
ответ дан 30 января 2011 в 07:01 Источник Поделиться

Я думаю, что вы хотите взять из документа.пишет и добавить

<body onload="loaded()">

(или любой другой функции нужно запустить первый) index.html

1
ответ дан 30 января 2011 в 07:01 Источник Поделиться