Гость
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Теоретический вопрос, как правильнее делать на JavaScript / 18 сообщений из 18, страница 1 из 1
21.10.2006, 12:25
    #34071625
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
Есть два способа создать таблицу со всеми ее внутренностями.
Первый, мы просто делаем
Код: plaintext
1.
div.innerHTML='<table><tr><td>1</td></tr></table>';
Второй способ сложнее, но
Код: plaintext
1.
2.
3.
var newElem = document.createElement("TABLE");
document.div.appendChild(newElem);
...

Какой способ правильнее?
...
Рейтинг: 0 / 0
21.10.2006, 12:37
    #34071632
Vladimir Kozlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
DamnedestЕсть два способа создать таблицу со всеми ее внутренностями.
Первый, мы просто делаем
Код: plaintext
1.
div.innerHTML='<table><tr><td>1</td></tr></table>';
Второй способ сложнее, но
Код: plaintext
1.
2.
3.
var newElem = document.createElement("TABLE");
document.div.appendChild(newElem);
...

Какой способ правильнее?

Думается мне, что первый способ возлагает больше логики на сервер, а второй - на клиент. А если вместо тейбла что-то другое сунуть придется - то тебе выбирать что модифицировать - либо яваскриптовую часть либо серверную. ИМХО серверную поприятнее модифицировать :)
...
Рейтинг: 0 / 0
21.10.2006, 12:39
    #34071634
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
Нет, обе части выполняются на клиенте...

например мне надо сделать таблицу.
Я могу создать просто заполнив innerHTML у тега DIV например, а могу создать объект таблицу, заполнить в нем все свойства, создать объекты TR и TD, присоединить их к таблице и полученное в итоге присоединить к DIV.

Оба варианта выполняются полностью на клиенте, а сервере передает только необходимую информацию. На вывод он не влияет.
...
Рейтинг: 0 / 0
21.10.2006, 12:45
    #34071642
Vladimir Kozlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
DamnedestНет, обе части выполняются на клиенте...
Оба варианта выполняются полностью на клиенте, а сервере передает только необходимую информацию. На вывод он не влияет.

Я имел в виду, что для первого варианта полную структуру html-фрагмента строит сервер, и клиенту остается только тупо воткнуть полученное в требуемое место. А во втором варианте теги таблицы формируются клиентским скриптом.
...
Рейтинг: 0 / 0
21.10.2006, 12:50
    #34071645
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
Почему же?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
var arr = new Array();
//Это возвращает севере. Массив для вывода
arr[ 0 ] =  1 ;
arr[ 1 ] =  2 ;
arr[ 2 ] =  3 ;
//Это делает клиент
result_html = '<table>';
for (i= 0 ;i< 3 ;i++)
{
  result_html += '<tr><td>'+arr[i]+'</td></tr>';
}
result_html = '</table>';

document.write(result_html);
...
Рейтинг: 0 / 0
21.10.2006, 12:51
    #34071647
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
Тут видно, что сожержимое формируется клиентом. Вопрос в том как формировать... с помощью innerHTML или с помощью объектов
...
Рейтинг: 0 / 0
21.10.2006, 12:53
    #34071651
Vladimir Kozlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
DamnedestПочему же?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
var arr = new Array();
//Это возвращает севере. Массив для вывода
arr[ 0 ] =  1 ;
arr[ 1 ] =  2 ;
arr[ 2 ] =  3 ;
//Это делает клиент
result_html = '<table>';
for (i= 0 ;i< 3 ;i++)
{
  result_html += '<tr><td>'+arr[i]+'</td></tr>';
}
result_html = '</table>';

document.write(result_html);


А почему не возвращать через XMLHttpRequest уже сформированный сервером фрагмент вместо сборки кусков на клиенте?
...
Рейтинг: 0 / 0
21.10.2006, 12:54
    #34071652
Vladimir Kozlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
DamnedestТут видно, что сожержимое формируется клиентом. Вопрос в том как формировать... с помощью innerHTML или с помощью объектов

Сформировать фрагмент серверными скриптами и клиенту остается только тупо воткнуть пришедший от XMLHttpRequest ответ в требуемый innerHTML. Клиент получится тоньше :)
...
Рейтинг: 0 / 0
21.10.2006, 12:56
    #34071654
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
HTML занимает слишком большой объем информации по сравнению с полезными данными...

Слишком большой объем придется закачивать клиенту... Увеличение объема страницы с 50 кило до 3-4 мег... :)
...
Рейтинг: 0 / 0
21.10.2006, 12:56
    #34071655
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
При большом количестве элементов.
...
Рейтинг: 0 / 0
21.10.2006, 13:00
    #34071660
Vladimir Kozlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
DamnedestHTML занимает слишком большой объем информации по сравнению с полезными данными...

Слишком большой объем придется закачивать клиенту... Увеличение объема страницы с 50 кило до 3-4 мег... :)

Ага, идею понял. Если куча однотипных элементов у которых меняется только один кусок - тогда да, логичнее передавать с сервера только этот кусок, и повторяющиеся теги доклеивать клиентом.
...
Рейтинг: 0 / 0
21.10.2006, 13:01
    #34071661
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
Ага, в этом то и задумка. Только я не знаю, как правильнее создавать этот кусок :)
...
Рейтинг: 0 / 0
21.10.2006, 13:06
    #34071666
Vladimir Kozlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
DamnedestАга, в этом то и задумка. Только я не знаю, как правильнее создавать этот кусок :)

Первый способ имхо нагляднее и читабельнее, а второй - академичнее :)
...
Рейтинг: 0 / 0
21.10.2006, 14:38
    #34071750
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
Первый, читабельнее, лучше, если закрыть глаза на то, что это нестандартно и будут проблемы, если будешь выводить не только числа. Типичный пример - отобразить текст, содержащий символы <, >, &, ', ", возможно, в тексте атрибутов. Далее, при генерации тегов текстом можно легко нарушить иерархию элементов (часто встречается), а то и вообще сгенерить невалидный фрагмент.
...
Рейтинг: 0 / 0
21.10.2006, 14:42
    #34071758
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
Ну это понятно что перед на сервере надо делать
Код: plaintext
addshalshes(htmlspecialchars($value));

Никаких проблем с выводом не возникнет вообще. Все отобразится так как введено.

Но все же вопрос немного в другом, как правильнее?
...
Рейтинг: 0 / 0
21.10.2006, 14:54
    #34071774
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
что значит "правильнее"?
...
Рейтинг: 0 / 0
21.10.2006, 14:56
    #34071777
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
Либо создавать таблицу как объект, формировать внутри нее строки как объекты и т.п.
Или просто сделать все через innerHTML
...
Рейтинг: 0 / 0
21.10.2006, 15:51
    #34071821
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теоретический вопрос, как правильнее делать на JavaScript
И то и то правильно. innerHTML может образовывать ДОМ
Неправильно будет использовать неудобный в конкретной ситуации способ
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Теоретический вопрос, как правильнее делать на JavaScript / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]