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

HTML+CSS+JavaScript

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

 

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

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

тема: узнать сколько загрузилось...
 
 автор: DEM   (28.08.2007 в 00:06)   письмо автору
 
 

Вопрос, можно ли узнать, сколько процентов уже загрузилось станицы в АЯКС? А то на локалхосте всё норм работает, а выкинул на сервак и чёт не грузит :( Вот думаю, это из-за моих кривых ручек, или просто ОООчень долго грузится...

   
 
 автор: sim5   (28.08.2007 в 06:57)   письмо автору
 
   для: DEM   (28.08.2007 в 00:06)
 

Каким бразом и проценты чего вы узнавали? Выкладывайте код сюда - вас озолотят.

   
 
 автор: DEM   (28.08.2007 в 23:48)   письмо автору
 
   для: sim5   (28.08.2007 в 06:57)
 

Есть три файла: info.php - в нём есть форма в котрой юзер вводит логин пользователя, есть еще одна папка "js" (без кавычек), в ней содержится: info.js и info.php
Код первого info.php с формой для ввода:

<?php
include_once "inc/functions.php";
echo 
"<script type='text/javascript' src='js/info.js'></script>";
    echo 
'Введите имя пользователя, по котрому вы хотите увидеть инфу: <input type="text" id="Name" /><input type="submit" value="Найти!" onclick="process()">
<div id="userinfo" />'
;
?>

Код файла info.js:

var xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject()
{
  var xmlHttp;
  if(window.ActiveXObject)
  {
      try
      {
          xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      {
          xmlHttp = false;
      }
  }
  else
  {
      try
      {
          xmlHttp = new XMLHttpRequest();
      }
      catch(e)
      {
          xmlHttp = false;
      }
  }
  if(!xmlHttp)
    alert("Ошибка создания соединения!");
  else
    return xmlHttp;
}
function process()
{
  if(xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {
    name = encodeURIComponent(document.getElementById("Name").value);
    xmlHttp.open("GET", "js/info.php?name="+name, true);
    xmlHttp.onreadystatechange = handleServerResponse;
    xmlHttp.send(null);

  }
  else
  {
    setTimeout('process()', 10);
    document.getElementById("userinfo").innerHTML = "<BR><img src='img/progres.gif' alt='Подожите... идёт загрузка информации'>";
  }

}

function handleServerResponse()
{
  if(xmlHttp.readyState == 4)
  {
    if(xmlHttp.status == 200)
    {
      xmlResponse = xmlHttp.responseXML;
      xmlDocumentElement = xmlResponse.documentElement;
      helloMessage = xmlDocumentElement.firstChild.data;
      document.getElementById("userinfo").innerHTML = helloMessage;
      setTimeout('process()', 10);
    }
    else
    {
      alert("Проблема: " + xmlHttp.statusText);
    }
  }
}


Ну и третий файл:

<?php
include_once "../inc/functions.php";
header('Content-Type: text/xml');
echo 
'<?xml version="1.0" encoding="Windows-1251"?>';
echo 
'<response>';
$id bez($_GET['name']);
$ua ua($id);
echo 
htmlspecialchars("<table border='1' align='center'>
<tr><td>Имя</td><td>"
.$ua['login']."</td></tr>
</table>"
);
}
else
{
    echo 
htmlspecialchars("<table border='1' align='center'><tr><td>Такйо пользователь не найден! Проверьте правильность ввода его ника!</td></tr></table>");
}

echo 
'</response>';

?>



На локалке всё норм, выкинул в инет - фигня какая-то :( Всё время пишет ПОДОЖДИТЕ (картинка) и всё... никакого эффекта :(

   
 
 автор: sim5   (29.08.2007 в 03:11)   письмо автору
 
   для: DEM   (28.08.2007 в 23:48)
 

Зачем все это? Если вы о прогрессе загрузки, то у вас ничего не получится, прочтите, например тут, или другие подобные топики этого раздела.
Ну а то что не грузится (что должно не знаю) - причину ищите на сервере (в случае, если ваш код верен).

   
 
 автор: DEM   (29.08.2007 в 13:54)   письмо автору
 
   для: sim5   (29.08.2007 в 03:11)
 

В том-то всё и дело :) На локалке всё отлично работает, выкинул на свой сайт - фигня какая-то :( Я хотел проверить сколько загрузилось, что бы увидеть, загружается ли вообще :)

   
 
 автор: bronenos   (29.08.2007 в 14:08)   письмо автору
 
   для: sim5   (29.08.2007 в 03:11)
 

если я правильно понял... ведь теоретически можно, пользуясь getResponseHeader("Content-Length")

   
 
 автор: sim5   (29.08.2007 в 14:59)   письмо автору
 
   для: bronenos   (29.08.2007 в 14:08)
 

Вдаваться в подробности AJAX потребности пока нет, потому не знаю его толком - но что может дать Content-Length? Я может не верно понимаю, но это просто "объем" содержимого, либо максимальный объем при загрузке, а не динамическое измерение объема загружаемого контента. Автор топика, как я понимаю, хочет отображать пользователю процент загруженного контента - многие хотят, а реально как?

   
 
 автор: bronenos   (29.08.2007 в 18:48)   письмо автору
 
   для: sim5   (29.08.2007 в 14:59)
 

если объем большой, то аякс хавает его кусками (если я не ошибся) - readyState==3, и тогда можно responseText.length сравнивать с Content-Length и выводить промежуточный процент

   
 
 автор: sim5   (29.08.2007 в 18:54)   письмо автору
 
   для: bronenos   (29.08.2007 в 18:48)
 

А мне кажется ничего не надо, если только загружаемый контент более сотни с небольшим КБ, но если он несколько сот КБ, то лучше не томить пользователя процентами, а подумать об хорошей организации сайта. Мне так кажется :)

   
 
 автор: Binura   (29.08.2007 в 19:56)   письмо автору
 
   для: sim5   (29.08.2007 в 18:54)
 

Тоже хочется поставить... Но аjаx еще не знаю... Может возвращать в виде массива? Первое значение - это общий объем.2ое значение сама информация. Затем поставить проверку объема 2ого значения... ?

   
 
 автор: sim5   (29.08.2007 в 20:07)   письмо автору
 
   для: Binura   (29.08.2007 в 19:56)
 

Да на здоровье, только вот вопрос - зачем? Если это большой контент, то уже минус - индексация его будет затруднительна. Если это небольшое динамически подгружаемое содержимое, то зачем этот сыр-бор с индикацией.
Если индексация не важна и контент большой, может лучше разбить его содержимое на части, и все-таки пожалеть пользователя?

   
 
 автор: Binura   (29.08.2007 в 20:18)   письмо автору
 
   для: sim5   (29.08.2007 в 20:07)
 

Ну хочется красивее сделать как будто на флэше... Хотя при большой скорости интернета пользователь и не заметит... Если только делать навигацию для читалки...

   
 
 автор: sim5   (29.08.2007 в 20:22)   письмо автору
 
   для: Binura   (29.08.2007 в 20:18)
 

Ну если хочется - пробуйте. Но лично я не стану дожидаться 100% загрузки, если каждые 10% приходиться ждать долго, и пусть там хоть манна небесная - уйду :)

   
 
 автор: DEM   (30.08.2007 в 21:06)   письмо автору
 
   для: DEM   (28.08.2007 в 00:06)
 

А как тогда лучше сделать? :( Пробовал и так подредактировать и эдак, но всегда какая-то фигня выходит :(

   
 
 автор: sim5   (31.08.2007 в 03:04)   письмо автору
 
   для: DEM   (30.08.2007 в 21:06)
 

>А как тогда лучше сделать?

Лучше просто подгружать данные молча, процесс загрузки имеется в браузерах, стоит ли его дублировать? Вы используете AJAX для чего? Если это небольшой по объему контент - стоит ли того, чтобы мудрить с прогрессом? Ежели это чрезмерно брольшое содержание, то зачем вам AJAX?

   
 
 автор: DEM   (01.09.2007 в 00:04)   письмо автору
 
   для: sim5   (31.08.2007 в 03:04)
 

Я имел ввиду, что имнео делать с тем, что код написанный вверху не работает :( Думал сначало про права доступа, поставил 777, но та же фигня :( Может где можно взять готовый код?

   
 
 автор: sim5   (01.09.2007 в 05:12)   письмо автору
 
   для: DEM   (01.09.2007 в 00:04)
 

Готовый код чего? Что не работает? Каки ошибки выдает сервер? Может стоит просмотреть лог файлы сервера.

   
Rambler's Top100
вверх

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