Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамическое заполнение таблицы, с большим количеством запросов на сервер 
:(
    Опции темы
Step
Дата 17.7.2005, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



мне необходимо сделать таблицу

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

данные следующие цвет и число......


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


генерация заполненой таблицы не допустима


помогите со скриптом


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Sardar
Дата 17.7.2005, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Задача вообще не ясна smile

Цитата(Step @ 17.7.2005, 19:50)
так понимаю надо в каждую ячейку вставить скрипт который будет отправлять запрос и получив данные прописывать число и устанавливать цвет ячейки....

Туеву хучу запросов отправлять не самое лучшее решение.

Цитата(Step @ 17.7.2005, 19:50)
генерация заполненой таблицы не допустима

Мы сейчас говорим не про генерацию на сервере, а на клиенте. Как раз сгенерить всю таблицу по новой(повторяю: на клиенте) будет наиболее эффективный способ. Данные можно подгрузить как угодно.

А ещё лучше если ты обьяснишь задачу, что нужно получить, что это будет?


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Step
Дата 17.7.2005, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



короче как на клиенте


<td>
вот сюда
</td>


вписать данные полученные с snmp.my.com


каждая ячейка будет брать данные со отдельных хостов


вспомнил где видел

сначало грузиться, а потом заполняеться http://host.com.ua/domain/lookup.jsp


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Aliance
Дата 17.7.2005, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



IMHO, лучшее решение это XML файл а котором хранится цвета и числа, выглядит примерно так:
Код

<data>
   <first>
      <color>red</color>
      <number>666</number>
   </first>
   <second>
      <color>yellow</color>
      <number>777</number>
   </second>
</data>


И JS читать с файла это. Лично я так реализовывал подобное.
PM MAIL WWW ICQ Skype   Вверх
Step
Дата 17.7.2005, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



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

пусть данные будут в формате сс:xx
cc -цвет
хх - число


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Sardar
Дата 18.7.2005, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Step @ 17.7.2005, 20:47)
сначало грузиться, а потом заполняеться http://host.com.ua/domain/lookup.jsp

Значит таблица уже существует.

Сначала для ясности. Таблица это нода в докуементе, такая же как любой слой, параграф или заголовок. Количество колонок, строк, текст внутри, внешний вид это всё может меняться динамически и очень просто. Об этом забыли, ибо не важно пока.

Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
<style type="text/css">
table {
  table-layout: fixed;
}
td {
  text-align: center;
  font-family: Verdana;
  font-weight: bold;
}
</style>
<script type="text/javascript">
<!--
function start_show(id) {
  var t=document.getElementById(id), msg, tokens;
  if((msg=t.getAttribute("message"))==null) return;
  var tokens=msg.split(/\s+/);
  var pos=tokens.length;
  tokens.reverse();
  start_show.tmr=window.setInterval(function() {
     var curpos=(--pos), steps=0;
     for(var i=t.rows.length-1; i>=0; i--) {
       for(var j=t.rows[i].cells.length-1; j>=0; j--) {
          var c=t.rows[i].cells[j];
          c.innerHTML=(curpos>=0 && curpos<tokens.length)? tokens[curpos]: "&nbsp;";
          c.style.backgroundColor="rgb("+Math.round(Math.random()*256)+", "+Math.round(Math.random()*256)+", "+Math.round(Math.random()*256)+")";
          curpos++;
          steps++;
       }
     }
    if(pos+steps<0) window.clearInterval(start_show.tmr);
  }, 1000);
}
//-->
</script>
</head>

<body>
<table id="platf" border="1" width="60%" message="Я крутая таблица! Текст в моих ячейках динамически меняеться !!!">
<tbody>
 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</tbody>
</table>
<button onclick="start_show('platf')">Start the Show =)</button>
</body>
</html>


Гораздо интересней как будем данные подгружать. Есть какие либо условия со стороны сервера? Например грузить мы всё сможем только с того доменна, что сами пришли, иначе доступа скриптам к данным от чужого домена не будет. Если грузить XML то по мому ИЕ ругаться не будет если инфа с разных доменов, более продвинутые бразеры типа Мозиллы потребуют разрешения.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Step
Дата 18.7.2005, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



по заполнению я понял и по цветам тоже


даже врубился как работает, понятно что можно по онлоаду сделать

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


общая картина
скрипт пшп, выберает из пшп данные по устройствам их адресам и адресам серверов к которым эти устройства привязаны

создает таблицу по количеству устройст
пихает ЮРЛ для получения того или иного параметра с устройсва привязанного к тому или иному серверу
например:
serv1.dev.ua?dev=10.100.1.53&p=sng

ответом будет всего два числа через двоеточье..

скрипт должен взять каждый такой юрл сделать запрос и внести данные...

вообщем по внесению данных понятно, получаеться одна только проблема - id для каждой ячейки надо свой писать и перебирать потом все... ладно с этим справлюсь...

подскажите как отправить запрос и обработать ответ...

как извлечь юрл я уже догодался
Добавлено @ 00:31
Цитата(Sardar @ 18.7.2005, 00:05)
Гораздо интересней как будем данные подгружать. Есть какие либо условия со стороны сервера? Например грузить мы всё сможем только с того доменна, что сами пришли, иначе доступа скриптам к данным от чужого домена не будет. Если грузить XML то по мому ИЕ ругаться не будет если инфа с разных доменов, более продвинутые бразеры типа Мозиллы потребуют разрешения.

интересно,

остановимся пока на одном домене.. откуда пришли


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Sardar
Дата 18.7.2005, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Step @ 17.7.2005, 23:24)
получаеться одна только проблема - id для каждой ячейки надо свой писать и перебирать потом все... ладно с этим справлюсь...

Step не придумывай проблем! DOM создавался на то что бы можно было с документом работать как захочеться. Повторяю: как решить мы тебе подскажем если ты пояснишь точно что нужно, а не как нужно smile. Благо уже немного ясно что нужно smile
И просто совет: JS как и вся клиентская сторона проектировалась так, что бы любому было удобно(особенно если писать под один браузер smile ), здесь нет ограничений, которые ты сам(интуитивно) придумываешь.

Цитата(Step @ 17.7.2005, 23:24)
как извлечь юрл я уже догодался


Давай подумаем что нам лучше от сервера получить. По мне так проще список URL, к которым будем обращаться. Таблицу с инфой будем генерить на клиенте, просто удобней и трафа меньше.

Как будем грузить данные? У тебя сервера с разных доменов по которым запросы делаем(если нет, то почему нельзя выдать всю инфу разом smile )? Если с разных то политика безопасности браузера не даст так просто обращаться к инфе. Можно инфу передать в куках, предварительно установив domain, можно подгрузить XML'ом предварительно попросив разрешение, можно в ифрейме установив document.domain в тот который захочешь, но такой способ вряд ли проктат.

Отсюда вывод: подробно рассказываешь сколько северов, что это будет, в каких форматах можешь выдавать инфу.
Добавлено @ 00:43
ОК, один домен. Тогда дальше, какие форматы? XML давать можем? На Оперу забить можно?


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Step
Дата 18.7.2005, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



Sardar, грузите меня и грузите smile
вот именно нужно не то что нужно, а то как это нужно...

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

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


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

просто скажите мне название функций...

вы мне уже помогли с заполнением... дайте мне только название функций или пример

спасибо





--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Sardar
Дата 18.7.2005, 03:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Step @ 18.7.2005, 00:37)
назвать мне название функции:
1. для получения данных
2. функции с помощь которых я смогу пропарсить данные (плевать как данные представлены, если есть функции для хмл, значит с сервака придут в формате хмл, там пшп-шный скрипт будет генерить так как скажу)
это все что мне нужно на данный момент..

Цитата(Step @ 18.7.2005, 00:37)
вы мне уже помогли с заполнением... дайте мне только название функций или пример


Во первых в JS нет "функций для получения данных", но есть приёмы для загрузки как целых страниц, так и различной инфы, т.е. от ифреймов и до XMLHttpRequest. С XML работать проще всего, но тогда нужно забить на Оперу 7 и ниже.

Давай сочиним пример с запросом данных которые с того же домена что и сам документ, проблем меньше:
index.htm
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Я страница что будет показывать таблицу!</title>
<style type="text/css">
#platf {
  text-align: center;
  border: 1px solid navy;
  padding: 20px 5px;
}
table {
  background-color: #ccc;
  width: 80%;
}
td, th {
  background-color: white;
}
</style>
<!-- А я инфа о URL'a что спросим с сервака, передаём если надо скрипту параметры -->
<script type="text/javascript" src="./list_data.php"></script>
</head>

<body onLoad="do_loading();">
<h1>Внизу типа таблица с данными...</h1>
<div id="platf">
<!-- Здесь генерим таблицу дедовским способом -->
<script type="text/javascript">
<!--
if(typeof(urls)!="undefined") {
  document.write("<table cellpadding='3' cellspacing='1' border='0' width='80%'>");
  document.write("<thead><tr><th>О чём?</th><th>Почему?</th><th>А нафига?</th></tr></thead><tbody id='cont'>");
  for(var i=0; i<urls.length; i++) {
    document.write("<tr><td>Loading...</td><td>&nbsp;</td><td>&nbsp;</td></tr>");
  }
  document.write("</tbody></table>");
} else document.write("<b>Э... похоже сервер с урлами то упал...</b>")
//-->
</script>
<!-- Здесь будем работать -->
<script type="text/javascript">
<!--
var loading_list={};
function load_data(target, url) {
   var name;
   do {
     name="ldata_"+Math.round(Math.random()*1000000);
   } while(loading_list[name]);
   var sc=document.createElement("SCRIPT");
   sc.type="text/javascript";
   sc.src=url+(url.indexOf("?")>0? "&": "?")+"target="+name;
   loading_list[name]=[target, sc];
   document.body.appendChild(sc);
}

function take_data(target, info) {
  if(!target||!loading_list[target]||!info||info.length<3) return alert("Какой то левый пакет с данными на ящик: "+target+" пришёл...!");
  var r=loading_list[target][0];
  for(var i=0; i<r.cells.length; i++) r.cells[i].innerHTML=info[i];
  document.body.removeChild(loading_list[target][1]); 
  loading_list[target]=null;
}

//Без body.onload IE глючит по страшному
function do_loading() {
  var c=document.getElementById("cont");
  for(var i=0; i<c.rows.length; i++) {
    load_data(c.rows[i], urls[i]);
  }
}

//-->
</script>
</div>

</body>
</html>


list_data.php
Код
/**
* Банально выдаём списки всех URL'ов на загрузку.
* Естествено предпологаеться что ты их генеришь.
*/

var urls=[
 "./get_info.php?about=cool%20girl",
 "./get_info.php?about=cool%20boy",
 "./get_info.php?about=some%20clothes",
 "./get_info.php?about=vingrad.ru"
];


Код
<?php
/**
* Здесь выдаём инфу по запросам в виде валидного JS.
*/
if(!($about=isset($_REQUEST['about'])? $_REQUEST['about']: null)||!isset($_REQUEST['target'])) die("alert('Типа не понятно что хочешь браток...');");

$info=array(
 "cool girl"=>"['Классная девчёнка', 'У смысле почему...?', 'Что бы дети были...?']",
 "cool boy"=>"['Не хилый парень', 'За язык!', 'А что бы было.']",
 "some clothes"=>"['Одежда', 'Потому что холодно.', 'А что бы в шафу валялось.']",
 "vingrad.ru"=>"['форум программистов', 'Потому что здесь куча умного народу.', 'Что бы мозги не плесневели.']"
);

sleep(mt_rand(1, 10)); //как будто ждём

if(array_key_exists($about, $info))
  echo "take_data('".$_REQUEST['target']."', ".$info[$about].");";
else echo "take_data('".$_REQUEST['target']."', ['Инфа не известна','','']);";
?>


Это просто пример как можно сделать smile Если дашь больше инфы, то перестану стебаться и помогу составить хороший скрипт smile Хотя пример выше это весьма удобный и готовый приём.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Step
Дата 13.8.2005, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



Sardar, с понедельника в отпуск, можно заняться творчеством и вернуться к идеи... поможешь?


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Sardar
Дата 13.8.2005, 02:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



OK, построим простейшую загрузку XML + проведём XSLT трансформации на клиенте. Естественно Опера пока отдыхает, потому для неё нужно отдельны рендерер подключать, или плюнуть на неё smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Step
Дата 13.8.2005, 03:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



Sardar,
Цитата(Sardar @ 13.8.2005, 02:28)
рендерер


опять груз smile



--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0653 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.