﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Веб-программирование / JavaScript  / Создание Div'а с помощью JavaScript'а / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Thu, 04 Dec 2008 00:36:30 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Создание Div'а с помощью JavaScript'а</title><link>http://relib.com/forums/Topic909300-10-1.aspx</link><description>Ребята, сорри, но я всегда за более простые решения - а почему не сделать DIV с самого начала, но пустым и невидимым, а JavaScript пишет в него текст и делает видимым?????</description><pubDate>Sun, 31 Dec 2006 01:21:39 GMT</pubDate><dc:creator>vlgsh</dc:creator></item><item><title>RE: Создание Div'а с помощью JavaScript'а</title><link>http://relib.com/forums/Topic909300-10-1.aspx</link><description>Только экспериментальным путем. У нас нет способа убедиться, что объект в самом деле был показан на экране. А значит надо подбирать это значение. На мой взгляд ставить значения &amp;lt; 10 мс не стоит. Слишком это мало. Поиграй со значениями в диапазоне, от 10 до 100.</description><pubDate>Fri, 29 Dec 2006 12:53:28 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Создание Div'а с помощью JavaScript'а</title><link>http://relib.com/forums/Topic909300-10-1.aspx</link><description>ну да, я понял.&lt;/P&gt;&lt;P&gt;Просто как мне подобрать такую задержку, чтобы на всех пользовательских компах в первый раз браузер успевал создать и отобразить div?&lt;/P&gt;&lt;P&gt;А ставить большую, тоже, сам понимаешь, не очень хочется.</description><pubDate>Fri, 29 Dec 2006 12:26:26 GMT</pubDate><dc:creator>curt_russel</dc:creator></item><item><title>RE: Создание Div'а с помощью JavaScript'а</title><link>http://relib.com/forums/Topic909300-10-1.aspx</link><description>Я имею в виду то, что создание нового DIVa (что делается в первый раз) требует больше времени чем переключение его видимости (что делается во второй).</description><pubDate>Fri, 29 Dec 2006 12:00:54 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Создание Div'а с помощью JavaScript'а</title><link>http://relib.com/forums/Topic909300-10-1.aspx</link><description>Видимо браузер не успевает за такой короткий интервал обновить экран.</description><pubDate>Fri, 29 Dec 2006 11:44:10 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Создание Div'а с помощью JavaScript'а</title><link>http://relib.com/forums/Topic909300-10-1.aspx</link><description>слушай, а почему когда ставлю задержку 1, а не 100, у меня первый раз div не появляется, только после 2-го раза?</description><pubDate>Fri, 29 Dec 2006 11:38:22 GMT</pubDate><dc:creator>curt_russel</dc:creator></item><item><title>RE: Создание Div'а с помощью JavaScript'а</title><link>http://relib.com/forums/Topic909300-10-1.aspx</link><description>Спасибо, блин, большое!&lt;/P&gt;&lt;P&gt;Чтоб я без Вас делал?!!&lt;/P&gt;&lt;P&gt;А то я тут весь извелся - не кажет и все тут! &lt;/P&gt;&lt;P&gt;Мда.  Век живи - век учись, и дураком помрешь.&lt;/P&gt;&lt;P&gt;Однако, JS - очень нетривиальный язык! :)</description><pubDate>Fri, 29 Dec 2006 11:29:06 GMT</pubDate><dc:creator>curt_russel</dc:creator></item><item><title>RE: Создание Div'а с помощью JavaScript'а</title><link>http://relib.com/forums/Topic909300-10-1.aspx</link><description>Пока идет выполнение скрипта браузер не будет обновлять экран. Поэтому придется использовать таймер:&lt;/P&gt;&lt;P&gt;[code]function sortColumn(e)&lt;BR&gt;{ &lt;BR&gt;    ShowInfoDiv();&lt;BR&gt;    setTimeout("LetSort(); HideInfoDiv()", 100);&lt;BR&gt;}[/code]&lt;/P&gt;&lt;P&gt;Еще я бы избавился от обращения к &amp;#100;ocument.all в функции ShowInfoDiv. Эта коллекция работает только в MSIE/Opera и вообще про нее давно пора уже забыть т.к. анлогичные вещи реализованы в DOM (ее поддерживают все современные браузеры).&lt;/P&gt;&lt;P&gt;[code]function ShowInfoDiv()&lt;BR&gt;{&lt;BR&gt;    var infoDiv = &amp;#100;ocument.getElementById('infoDiv');&lt;BR&gt;    if(null != infoDiv)&lt;BR&gt;    {&lt;BR&gt;        infoDiv.style.display = 'block';&lt;BR&gt;        return;&lt;BR&gt;    }&lt;BR&gt;    ...&lt;BR&gt;}[/code]</description><pubDate>Fri, 29 Dec 2006 11:11:09 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Создание Div'а с помощью JavaScript'а</title><link>http://relib.com/forums/Topic909300-10-1.aspx</link><description>Хорошо.&lt;BR&gt;У вас все работает на простом примере - у меня тоже.&lt;BR&gt;А теперь реальная ситуация.&lt;/P&gt;&lt;P&gt;[code=javascript]&lt;BR&gt;function sortColumn(e)&lt;BR&gt;{ &lt;BR&gt;    ShowInfoDiv();&lt;BR&gt;    LetSort();&lt;BR&gt;    HideInfoDiv();    //  никаких задержек!! - нафиг они мне нужны&lt;BR&gt;}&lt;/P&gt;&lt;P&gt;function LetSort()   //  заглушка реальной сортировки&lt;BR&gt;{&lt;BR&gt; var res;&lt;BR&gt; for(var i=0; i&amp;lt;1000000; i++)&lt;BR&gt;      for(var j=i; j&amp;lt;1000000; j++)&lt;BR&gt;         res += i*i*i/(j*j);&lt;BR&gt;}&lt;/P&gt;&lt;P&gt;function ShowInfoDiv()&lt;BR&gt;{&lt;BR&gt;    if(document.all['infoDiv'])&lt;BR&gt;    {&lt;BR&gt;        document.getElementById('infoDiv').style.display = '';&lt;BR&gt;        return;&lt;BR&gt;    }&lt;BR&gt;    var divWidth = 200;&lt;BR&gt;    var divHeight = 22;&lt;BR&gt;    var left = parseInt((document.body.clientWidth - divWidth) / 2)-10;&lt;BR&gt;    var top = parseInt((document.body.clientHeight - divHeight) / 2)-10;  &lt;BR&gt;    elDiv = document.createElement('div');&lt;BR&gt;    elDiv.innerHTML = "&amp;lt;div id='infoDiv' style='left:"+left+"; top:"+top+"; position:absolute; display:block;"+&lt;BR&gt;        " background:#778899; color:White; font-size:larger; text-align:center; width:" +divWidth+ "; height:" +divHeight+ ";'&amp;gt;Процесс сортировки...&amp;lt;/div&amp;gt;";&lt;BR&gt;    document.body.appendChild(elDiv);    &lt;BR&gt;}&lt;BR&gt;function HideInfoDiv()&lt;BR&gt;{&lt;BR&gt;    document.getElementById('infoDiv').style.display = 'none';&lt;BR&gt;}&lt;BR&gt;[/code]&lt;/P&gt;&lt;P&gt;Дальше идет  просто таблица с кучей записей:&lt;BR&gt;[code=html]&lt;BR&gt;&amp;lt;body&amp;gt;&lt;BR&gt;  &amp;lt;table onclick="sortColumn(event);"&amp;gt;&lt;BR&gt;      .....&lt;BR&gt;  &amp;lt;/table&amp;gt;&lt;BR&gt;&amp;lt;/body&amp;gt;&lt;BR&gt;[/code]&lt;/P&gt;&lt;P&gt;Так вот. Дело все в том, что этот div появляется только после того, как закончена сортировка. А мне-то надо, чтобы он появлялся ДО нее!&lt;BR&gt;Вот в чем проблема-то.</description><pubDate>Fri, 29 Dec 2006 10:58:56 GMT</pubDate><dc:creator>curt_russel</dc:creator></item><item><title>RE: Создание Div'а с помощью JavaScript'а</title><link>http://relib.com/forums/Topic909300-10-1.aspx</link><description>Через методы DOM надо работать:&lt;/P&gt;&lt;P&gt;[code]function ShowInfoDiv()&lt;BR&gt;{&lt;BR&gt;    var oDiv = &amp;#100;ocument.createElement("DIV");&lt;BR&gt;    oDiv.id = "infoDiv";&lt;BR&gt;    var oText = &amp;#100;ocument.createTextNode("Идет сортировка");&lt;BR&gt;    oDiv.appendChild(oText);&lt;BR&gt;    &amp;#100;ocument.body.appendChild(oDiv);&lt;BR&gt;}[/code]&lt;/P&gt;&lt;P&gt;Стиль для такого DIVa может быть например таким:&lt;/P&gt;&lt;P&gt;#infoDiv {position:absolute; left:0; top:0; width:100%; height:100%; background:black; color:white; z-index:10}</description><pubDate>Wed, 27 Dec 2006 16:04:26 GMT</pubDate><dc:creator>bazile</dc:creator></item></channel></rss>