Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программное обеспечение > Проблема с AJAX


Автор: cir 27.2.2008, 17:11
  Есть страничка, на котрой находятся насколько параметров обновляющихся с использование AJAX технологии из БД. Так вот, если поставить время обновления достаточно небольшое, то видно как процесс запущенный браузером начинает съедать память... Вначале думал, что мой глюк.  Поставил малый период обновления данных в примере, который шел вместе с библиотекой SAjax.php - тот же самый результат. Пробовал просматривать эти страницы разными браузерами (IE,Opera). Одно и то же поведение - процесс начинает есть память. Что делать?

Автор: solenko 27.2.2008, 17:31
ну если в IE наыешиваете анонимную функцию как обработчик, то так и будет. А вообще, вы бы код показали...

Добавлено через 46 секунд
Кстати, а что этот вопрос в php делает? Почему не в JavaScript?

Автор: bars80080 27.2.2008, 17:32
интересный факт, данный форум тоже не слабо пожирает память
открываешь одну, другую, третью страницу, закрываешь, открываешь другие... на 10-ой съедено 500-800Мб оперативки

что это, глюк эксплорера или у меня система сбоит ?

или всё же аякс здешний...

Автор: cir 27.2.2008, 17:37
Выкладываю код:
Код

<?
function draw_signal($field,$label,$x,$y)
{
  echo"
  <div style='position: absolute; left:".$x.";  top:".$y.";'>
  <table border = 0>
  <tr>
    <td width = 150 ><div class='signal_label'>".$label."</div></td>
    <td ><div id=\"signal_".$field."\" class='signal_value' >(loading...)</div>   </td>
  </tr>
  </table>      
  
  </div>
  ";
}
?>

<?
require("admin/util/Sajax.php");
require_once("admin/config.php");
require("admin/util/draw_signals.php");
$id_object = $_GET['id_object'];
if ($id_object=='') exit();
function show_now($id,$field) {
    
    $query = "select ".$field."  from signal_tp where id_object = ".$id;    
    $result = mysql_query($query);
    $line = mysql_fetch_array($result);    
    mysql_free_result($result);
    return $line[$field];       
}
//starting SAJAX stuff
$sajax_request_type = "GET";
sajax_init();
sajax_export("show_now");
sajax_handle_client_request();
?>
<html>
<head>
<link rel="StyleSheet" type="text/css" href="style.css">

        <title>Show Server's Date</title>
        <script>
        <?
        sajax_show_javascript();
        ?>
        <?
        echo("function show_me"."in1"."(date_server) {document.getElementById('signal_in1').innerHTML = date_server;}");            
        echo("function show_me"."in2"."(date_server) {document.getElementById('signal_in2').innerHTML = date_server;}");                    
        echo("function show_me"."in3"."(date_server) {document.getElementById('signal_in3').innerHTML = date_server;}");                    

        echo("function show_me"."in4"."(date_server) {document.getElementById('signal_in4').innerHTML = date_server;}");                            
        echo("function show_me"."in5"."(date_server) {document.getElementById('signal_in5').innerHTML = date_server;}");                            
        echo("function show_me"."in6"."(date_server) {document.getElementById('signal_in6').innerHTML = date_server;}");                            
        
        echo("function show_me"."in7"."(date_server) {document.getElementById('signal_in7').innerHTML = date_server;}");                            
        echo("function show_me"."in8"."(date_server) {document.getElementById('signal_in8').innerHTML = date_server;}");                            
        echo("function show_me"."in9"."(date_server) {document.getElementById('signal_in9').innerHTML = date_server;}");                            
        
        echo("function show_me"."in10"."(date_server) {document.getElementById('signal_in10').innerHTML = date_server;}");                            
        echo("function show_me"."in_i1"."(date_server) {document.getElementById('signal_in_i1').innerHTML = date_server;}");                            
        echo("function show_me"."in_i2"."(date_server) {document.getElementById('signal_in_i2').innerHTML = date_server;}");                            
        
        
        ?>
        function get_date() {
        <?   
        echo("x_show_now(".$id_object.",'in1',show_me"."in1);");    
        echo("x_show_now(".$id_object.",'in2',show_me"."in2);");        
        echo("x_show_now(".$id_object.",'in3',show_me"."in3);");                
        
        echo("x_show_now(".$id_object.",'in4',show_me"."in4);");    
        echo("x_show_now(".$id_object.",'in5',show_me"."in5);");        
        echo("x_show_now(".$id_object.",'in6',show_me"."in6);");                
        
        echo("x_show_now(".$id_object.",'in7',show_me"."in7);");    
        echo("x_show_now(".$id_object.",'in8',show_me"."in8);");        
        echo("x_show_now(".$id_object.",'in9',show_me"."in9);");                
        
        echo("x_show_now(".$id_object.",'in10',show_me"."in10);");    
        echo("x_show_now(".$id_object.",'in_i1',show_me"."in_i1);");        
        echo("x_show_now(".$id_object.",'in_i2',show_me"."in_i2);");                                     
    ?>              
        setTimeout("get_date()", 1000);
        }
        </script>
</head>
 <body  onload="get_date();" > 
<?
    draw_signal('in1','Вход 1', 10,10);
    draw_signal('in2','Вход 2', 10,40);
    draw_signal('in3','Вход 3', 10,70);
    
    draw_signal('in4','Вход 4', 210,10);
    draw_signal('in5','Вход 5', 210,40);
    draw_signal('in6','Вход 6', 210,70);
    
    draw_signal('in7','Вход 7', 410,10);
    draw_signal('in8','Вход 8', 410,40);
    draw_signal('in9','Вход 9', 410,70);
    
    draw_signal('in10','Вход 10',610,10);
    draw_signal('in_i1','А 1', 610,40);
    draw_signal('in_i2','А 2', 610,70);    
?>
<table>
</table>
</body>
</html>


Автор: solenko 27.2.2008, 17:37
bars80080, оперу не выключал уже неделю. Жрет 120М )

Добавлено через 2 минуты и 8 секунд
cir,  у вас же не php процесс жрет память, а браузер, насколько я понял. Так зачем же серверный скрипт?


Автор: cir 27.2.2008, 17:44
ВЕСЬ скрип представлден. Естественно память жрет браузер. Вопрос: Как избавиться от этого, если срипта, исполняемого клиентом нет вообще?

Автор: skyboy 27.2.2008, 17:57

M
skyboy
перенесно из PHP

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)