Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 26.07.2011, 04:36   #1
Вредина
 
Аватар для Jooz
 
Регистрация: 03.07.2007
Адрес: д.Коноплянка
Сообщений: 3,535
Вес репутации: 432
Jooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущее
Question js - помогите поправить скрипт

Суть:
Есть приложение (локальное), работает на движке IE, нужно IE-кой проверить состояние сети, для это в IE подгружается файл index.html:
1. На удаленный сервер кидаю скрипт status.js, следующего содержания:
Код HTML:
var no = 'oke';
2. В локальном index.html засунуто:
Код HTML:
<div id='status' onclick="imports('http://test.ru/core/v/status.js'); setTimeout('check()',3000);">----</div>
                
<script type='text/javascript'>
var no = undefined;

function imports(src){
    var ms = new Date().getTime().toString();
    var scriptElem = document.createElement('script');
    scriptElem.setAttribute('src',src + '?' + ms);
    scriptElem.setAttribute('type','text/javascript');
    document.getElementsByTagName('head')[0].appendChild(scriptElem);
    alert(src + '?' + ms);
}

function check(){
if(no!=undefined){ // проверяем изменилась ли переменная no в результате подгрузки внешнего файла, в котором так же объявлена переменная no
document.getElementById('status').innerHTML=' Статус сети: <font color="green"><span class="ico_check">On-line</span></font> '; // дописываем в div благополучный результат таймаута;
    }
else{
document.getElementById('status').innerHTML=' Статус сети: <font color="red"><span class="ico_off">OffLine</span></font> ';  // дописываем в div отрицательный результат таймаута; 
    }
    }
    setTimeout('check()',3000); // устанавливаем таймаут в 3 секунды для вызова по умолчанию
//-->
</script>
Проблема:
Вот эта шляпа работает как нужно!
alert(src + '?' + ms);
Но, переменная "no" из подгруженного вновь файла - не обновляется, может кто посоветует как разрулить? Точнее обновляется но только 1 раз. Например: статус при загрузке странички OffLine (файл /status.js убрал). Сую файл на место, делаю клик по div - статус меняется на On-Line, дальнейшая манипуляция с status.js - статус не меняет, хотя видно, что DIV реплейсится, очевидно переменная "no" не меняется

В общем задача без перезагрузки странички проверить состояние сети и вывести в DIV. Cостояние проверяется путем загрузки удаленного файла js который содержит переменную на которую локальная часть скрипта должна реагировать. Можно конечно на аяксе нарисовать, но не хочется подключать левые либы.

Пожалуйста, задайте нужный вектор пендулю
__________________
Чтобы произошло чудо нужно обязательно дунуть. Если не дунуть - чуда не произойдет!

Последний раз редактировалось Jooz; 26.07.2011 в 04:42.
Jooz вне форума   Ответить с цитированием
Старый 26.07.2011, 07:26   #2
Мастер
 
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 236
ahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущее
По умолчанию

Может все таки лучше юзать XMLHttpRequest?
Там и статус запроса виден нормальный.
ahsinis вне форума   Ответить с цитированием
Старый 26.07.2011, 13:05   #3
Мастер
 
Аватар для Dohlaja_Sova
 
Регистрация: 29.05.2007
Сообщений: 525
Вес репутации: 229
Dohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордится
По умолчанию

может кеш?
?random=random
Dohlaja_Sova вне форума   Ответить с цитированием
Старый 26.07.2011, 13:16   #4
Вредина
 
Аватар для Jooz
 
Регистрация: 03.07.2007
Адрес: д.Коноплянка
Сообщений: 3,535
Вес репутации: 432
Jooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Dohlaja_Sova Посмотреть сообщение
может кеш?
Не, не кэш:
var ms = new Date().getTime().toString();
scriptElem.setAttribute('src',src + '?' + ms);
__________________
Чтобы произошло чудо нужно обязательно дунуть. Если не дунуть - чуда не произойдет!
Jooz вне форума   Ответить с цитированием
Старый 26.07.2011, 14:16   #5
Мастер
 
Аватар для Dohlaja_Sova
 
Регистрация: 29.05.2007
Сообщений: 525
Вес репутации: 229
Dohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордитсяDohlaja_Sova - за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Jooz Посмотреть сообщение
Не, не кэш:
а. не заметил, сорь.
может надо imports из check вызывать? таймаут-то только на чек прописан, а импортс один раз на странице вызвался при клике и все
Dohlaja_Sova вне форума   Ответить с цитированием
Старый 26.07.2011, 15:08   #6
Вредина
 
Аватар для Jooz
 
Регистрация: 03.07.2007
Адрес: д.Коноплянка
Сообщений: 3,535
Вес репутации: 432
Jooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущееJooz - прекрасное будущее
По умолчанию

Пришлось слона подтянуть:

Код HTML:
function Push()  
   {  
 
     $.ajax({  
                url: "core/lan.php",  
                cache: false,  
                success: function(html){  
                     
                    $("#pushstatus").html(html);  
                    
                        if ( html == 0) { 
                            
                            $("#push").html("Статус сети: <font color='red'><span class='ico_off'>Off-Line</span></font>"); 
                            $('#Div').hide();
                            $('#Div_info').show();
                        } 
                        else {
                            $("#push").html("Статус сети: <font color='green'><span class='ico_check'>On-line</span></font> ");
                            $('#Div').show();
                            $('#Div_info').hide();
                                
                        }
                    
                        var PushStatus = html;        
                }
            });  
        }  
      
  $(document).ready(function(){  
            Push();  
            setInterval('Push()',1000);  
  });
Ну и разумеется в core/lan.php локальный обработчик возвращающий 0 или 1 через сокеты, Пых подтянуть тоже пришлось, мы не ищем легких путей
__________________
Чтобы произошло чудо нужно обязательно дунуть. Если не дунуть - чуда не произойдет!
Jooz вне форума   Ответить с цитированием
Старый 26.07.2011, 16:35   #7
Специалист
 
Аватар для ladeika
 
Регистрация: 10.02.2011
Сообщений: 193
Вес репутации: 168
ladeika - очень-очень хороший человекladeika - очень-очень хороший человекladeika - очень-очень хороший человекladeika - очень-очень хороший человекladeika - очень-очень хороший человек
По умолчанию

С кем, кто и о чём сейчас разговаривал-то,говорите?
ladeika вне форума   Ответить с цитированием
Старый 27.07.2011, 07:08   #8
Мастер
 
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 236
ahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущее
По умолчанию

а зачем вообще пых, вам просто ответ от сервера нужен же
в core/lan.php что-то полезное есть?
имхо можно любой файл проверять просто
ahsinis вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поправить/переделать верстку сайта Inferno Деловое сотрудничество 4 20.05.2010 23:12
Поправить php код в шаблон joomla slr Разработка и сопровождение сайтов 1 03.10.2009 22:46
Надо поправить скин на IPB. Оплату гарантирую. Deadman_n Курилка 0 08.05.2009 09:22
Нужно поправить скрипт happsihh Разработка и сопровождение сайтов 0 24.02.2009 13:56


Часовой пояс GMT +3, время: 18:37.