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

Разное

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Незаметная перезагрузка страницы
 
 автор: sasha12342   (30.03.2014 в 18:21)   письмо автору
 
 

Недавно передо мной встала задача сделать кнопку на сайте, которая обновляет (перезагружает) страницу. При этом, пользователь не должен этого заметить.
Это вообще, реально?

  Ответить  
 
 автор: cheops   (30.03.2014 в 18:30)   письмо автору
 
   для: sasha12342   (30.03.2014 в 18:21)
 

Да, конечно, можно воспользоваться AJAX-загрузкой, когда вы при помощи JavaScript посылаете запрос на сервер, загружаете часть страницы и при помощи же JavaScript изменяете часть страницы, полученной информацией. Так как большая часть страницы не подвергается изменениям, вы можете изменить только ту часть, которую нужно изменить (текст, изображение и т.п.).

  Ответить  
 
 автор: sasha12342   (30.03.2014 в 18:39)   письмо автору
 
   для: cheops   (30.03.2014 в 18:30)
 

Спасибо за ответ, но мне нужно, именно перезагрузить страницу (всю). ajax не подойдет, потому что мне нужно обновление переменной php.

  Ответить  
 
 автор: cheops   (30.03.2014 в 19:19)   письмо автору
 
   для: sasha12342   (30.03.2014 в 18:39)
 

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

AJAX в фоновом режиме обращается на сервер, где и находится переменная PHP, поэтому не очень понятно, почему он не подходит?

  Ответить  
 
 автор: sasha12342   (30.03.2014 в 19:41)   письмо автору
 
   для: cheops   (30.03.2014 в 19:19)
 

У меня на сайте предусмотрено видео-общение (как в чате рулетка), окно с видео я не могу вызывать из другого файла, то есть оно подключается инклудом, но аяксом вывести не получается.
Вот код видео-окна в котором необходимо обновлять переменную "$pol_id" по нажатию кнопки:
<script language="javascript">AC_FL_RunContent = 0;</script>
<script src="AC_RunActiveContent.js" language="javascript"></script>
<script language="javascript">
    if (AC_FL_RunContent == 0) {
        alert("This page requires AC_RunActiveContent.js.");
    } else {
        AC_FL_RunContent(
            'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
            'src', 'Subscriber',
            'quality', 'high',
            'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
            'scale', 'showall',
            'wmode', 'window',
            'id', 'Subscriber',
            'name', 'Subscriber',
            'allowFullScreen', 'true',
            'allowScriptAccess','sameDomain',
            'movie', 'Subscriber',
            'flashvars', 'idn=<?php echo $pol_id;?>', 
            'salign', ''
            ); 
    }
</script>
<noscript>
    <object classid="clsid:d24cdb8e-ae4d-11cf-96b8-444245554723900" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"  id="Subscriber" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="flashvars" value="idn=<?php echo $pol_id;?>" />
    <param name="allowFullScreen" value="true" />
    <param name="movie" value="Subscriber.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#000" />    
<embed src="Subscriber.swf" flashvars="idn=<?php echo $pol_id;?>" quality="high" name="Subscriber" allowScriptAccess="sameDomain" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
    </object>
</noscript>
Когда я пытался вывести это окно через аякс в индексном файле, то там только это окно и выводилось, больше ничего (пустая страница).
Плюс ко всему, на главной они могут переписываться (чат), дарить разные подарки (зависит от пользователя), опять нужны переменные...

  Ответить  
 
 автор: cheops   (30.03.2014 в 20:24)   письмо автору
 
   для: sasha12342   (30.03.2014 в 19:41)
 

Flash прекрасно взаимодействует с JS, собственно, AC_FL_RunContent() - это и есть JS-функция, которую никто не запрещает вызывать по-новой с нужным значением flashvars, сервер и переменная $pol_id вам тут вообще не зачем (достаточно в JS-массиве сформировать заранее нужные значения и выбирать в случайном порядке, на худой конец, можно и у сервера запросить по AJAX).

  Ответить  
 
 автор: sasha12342   (31.03.2014 в 00:32)   письмо автору
 
   для: cheops   (30.03.2014 в 20:24)
 

Попробовал сделать так:
<script language="javascript">
function Ajax(){
  var request;
  if(window.XMLHttpRequest){
      request = new XMLHttpRequest();
  } else if(window.ActiveXObject){
      request = new ActiveXObject("Microsoft.XMLHTTP");  
  } else {
      return;
  }
 
  request.onreadystatechange = function(){
        switch (request.readyState) {
          case 4:{
           if(request.status==200){
                        document.getElementById("printResult").innerHTML = "idn="+request.responseText;
                     }else if(request.status==404){
                        alert("Ошибка: запрашиваемый скрипт не найден!");
                     }
                      else alert("Ошибка: сервер вернул статус: "+ request.status);
           
            break
            }
        }      
    }
request.open("POST",'ajax.php', true);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.send("param1=111");
  }
  function print_console(text){
    document.getElementById("printResult").innerHTML;
}

    if (AC_FL_RunContent == 0) {
        alert("This page requires AC_RunActiveContent.js.");
    } else {
        AC_FL_RunContent(
            'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
            'src', 'Subscriber',
            'quality', 'high',
            'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
            'scale', 'showall',
            'wmode', 'window',
            'devicefont', 'false',
            'id', 'Subscriber',
            'name', 'Subscriber',
            'allowFullScreen', 'true',
            'allowScriptAccess','sameDomain',
            'movie', 'Subscriber',
            'flashvars', 'idn='+request.responseText, 
            'salign', ''
            ); 
    }
</script>
<param name="flashvars" id='printResult' value="idn=<?php echo $pol_id;?>" /> 
<embed src="Subscriber.swf" flashvars="idn=<?php echo $pol_id;?>" quality="high" name="Subscriber" allowScriptAccess="sameDomain"...

Но ничего не получается, param и embed пустые...

  Ответить  
 
 автор: sasha12342   (02.04.2014 в 00:21)   письмо автору
 
   для: sasha12342   (31.03.2014 в 00:32)
 

Если я правильно понял, то вышеописанное на аяксе не реализовать?
Вопрос с перезагрузкой остается открытым... Походу это единственное решение...

  Ответить  
 
 автор: KPETuH   (02.04.2014 в 10:39)   письмо автору
 
   для: sasha12342   (02.04.2014 в 00:21)
 

А зачем вы используете innerHTML елси вам надо вставить результат в

value

  Ответить  
 
 автор: sasha12342   (02.04.2014 в 19:59)   письмо автору
 
   для: KPETuH   (02.04.2014 в 10:39)
 

И в value вставлял, и менял значение непосредственно в "embed" но это, абсолютно ничего не дает.
Окно собеседника от этого не меняется... Чтобы запустилось другое видео, по-любому нужно перезагрузить страницу...

  Ответить  
Rambler's Top100
вверх

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