Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Объект остаётся на месте. Куда деваются его свойства после первого рефреша таймера?

Сообщения:  [1-2] 

 
 автор: RMW   (19.08.2007 в 16:55)   письмо автору
 
   для: candelabrum   (19.08.2007 в 06:47)
 

Подкину пищу для размышлений: никакой у вас объект не сохраняется после рефреша,
добавьте оператор typeof вот в эту строку:

alert(typeof this.obj) // объект сохраняется после любого количества рефрешей 

   
 
 автор: candelabrum   (19.08.2007 в 06:47)   письмо автору
 
 

Помогите снять копии рефреш-функций с прототипа и передать в них параметры соответствующих объектов должным образом. Должно получиться 100%-е клонирование, то есть чтобы в каждой копии помимо всего прочего содержался бы и свой собственный setTimeout. У меня же получается потеря значения после первого рефреша (потери объекта, как мне думалось ранее, оказывается, не происходит, однако ещё неизвестно толком, что это за объект, удерживающийся "в седле", на самом деле). Если ещё точнее, то потеря идёт даже не столько значений, а свойств объекта (id, value и т. п.). Привожу то, что имею. Вопрос: КУДА ДЕВАЮТСЯ СВОЙСТВА С ИХ ЗНАЧЕНИЯМИ и КАК ИХ УДЕРЖИВАТЬ "В СЕДЛЕ"?
Вполне возможно, что для сохранения исчезающих параметров нужно их до второго рефреша успеть поместить в массив, а при последующих рефрешах таймера доставать. Я пока не пробовал, но что-то мне подсказывает, что может и не выйти. А если и получится, то вышеозвученный вопрос остаётся в силе (из любознательности). Неужто нельзя без массивов и прочих отягощений?


<HTML>
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
</STYLE>
<SCRIPT>
function Counter(){}

function refresher(obj) {
    this.obj = obj
    alert(this.obj) // объект сохраняется после любого количества рефрешей
    alert(this.obj.id) // становится 'undefined' со второго круга
    setTimeout("refresher('"+obj+"')",330) // возможно, проблема здесь, но вариации без кавычек (ссылка на функцию), подстановка this. и некоторые другие эксперименты не дали должного результата
}

Counter.prototype.toString = refresher
</SCRIPT>
</HEAD>

<BODY>
<TABLE style="border:none; background-color:#FFFFFF;" cellspacing=7 cellpadding=0>
  <TR>
    <TD>
    <TABLE class="tbl">
        <FORM id="form1">
            <TR>
                <TD class=parameters>value1:</TD>
                <TD><INPUT id="parameter1" value="17"></TD>
            </TR>
            <TR>
                <TD><INPUT class=send onClick="
                        bit1 = new Counter(this.form);
                        bit1.runner = this.form.elements['parameter'+this.form.id.match(/\d/)].value;
                        bit1.toString(this.form)"
                           type="button" value="Send"></TD>
            </TR>
        </FORM>
    </TABLE>
    </TD>
    <TD>
    <TABLE class="tbl">
        <FORM id="form2">
            <TR>
                <TD class=parameters>value2:</TD>
                <TD><INPUT id="parameter2" value="43"></TD></TR>
            <TR>
                <TD><INPUT class=send onClick="
                        bit2 = new Counter(this.form);
                        bit2.runner = this.form.elements['parameter'+this.form.id.match(/\d/)].value;
                        bit2.toString(this.form)"
                           type="button" value="Send"></TD>
            </TR>
        </FORM>
    </TABLE>
    </TD>
    <TD>
    <TABLE class="tbl">
        <FORM id="form3">
            <TR>
                <TD class=parameters>value3:</TD>
                <TD><INPUT id="parameter3" value="78"></TD></TR>
            <TR>
                <TD><INPUT class=send onClick="
                        bit3 = new Counter(this.form);
                        bit3.runner = this.form.elements['parameter'+this.form.id.match(/\d/)].value;
                        bit3.toString(this.form)"
                           type="button" value="Send"></TD>
            </TR>
        </FORM>
    </TABLE>
    </TD>
  </TR>
  <TR>
    <TH id="results1">&nbsp;</TH>
    <TH id="results2">&nbsp;</TH>
    <TH id="results3">&nbsp;</TH>
  </TR>
</TABLE>

</BODY>
</HTML>


Возможно также, что ошибка закралась во все блоки типа:


                <TD><INPUT class=send onClick="
                        bit1 = new Counter(this.form);
                        bit1.runner = this.form.elements['parameter'+this.form.id.match(/\d/)].value;
                        bit1.toString(this.form)"
                           type="button" value="Send"></TD>

   

Сообщения:  [1-2] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования