Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 04.03.2013, 20:23
Аспирант
Отправить личное сообщение для skynet-mfd Посмотреть профиль Найти все сообщения от skynet-mfd
 
Регистрация: 29.12.2012
Сообщений: 40

Сообщение от danik.js Посмотреть сообщение
Я ничего не получаю. Просто мне тоже интересно. Очень надеюсь на ответ «да».
блин... я думал это топикстартер пишет )
Ответить с цитированием
  #12 (permalink)  
Старый 06.03.2013, 08:07
Интересующийся
Отправить личное сообщение для Fareastaz Посмотреть профиль Найти все сообщения от Fareastaz
 
Регистрация: 13.10.2011
Сообщений: 10

Ссори за отсутствие я топикстартер, вернулся

вобщем проблему нагрузки решил немного другим способом, изменил немного код. Но вопрос все равно остался нерешенный, напишу снизу после кода.

<!DOCTYPE HTML>
<html>
<head>
	<meta http-equiv="content-type" content="text/html" />
	<meta name="author" content="Viacheslav" />
    <script src="js/jquery-1.7.1.min.js"></script>
    <link rel="stylesheet" type="text/css" href="css/style.css">
	<title>JSON TEST-1</title>
</head>

<body>

  <div id="content"></div>

<input type=button value="pause/play" onclick="continue_reporting = ( continue_reporting == 1 ) ? 0 : 1;">
    <script type="text/javascript">        
        
        //Global Variables        
        var continue_reporting = 1;        
        var bids_displayed = 5;
        var uls;
        var data;        
        fetch_data(); // initial run

        function process_data(data){
          var delay_entry = 0;
          $.each(data, function(key, value){            
            setTimeout(function(){pusher(value)}, 1000 * delay_entry);//sending parameter for crappy IE
            delay_entry++;
          })
        }

        function fetch_data(){
            //$.getJSON('js/list.json?i=' + Math.random(), process_data);            
            var url = 'js/list.json';

//the same as getJson
            $.ajax({
                url: url /*+ Math.random()*/,
                cache: false,
                dataType: 'json' ,
                data: data,
                success: process_data
              });
            
           setTimeout(fetch_data, 1000);
           //setTimeout(function(){fetch_data}, 1000);
          }

        function pusher(data){
            if ( continue_reporting == 1 ){
                
                //######### REMOVE CONSOLE.LOG BEFORE TESTING IN IE (почемуто гадина не работает в до боли любимом IE)
                console.log("data.bids.length: " + data.bids.length );

                var main_ul = "<ul class='bid_density'>";
                main_ul += "<li class='bid_region'><span class='bid_region_city'><a href='www.google.com' rel=''>" + data.reg + "</span></a><span class='bid_region_bid'>Bid</span></li>";
                for( var i = 0; i < data.bids.length; i++ ){
                    main_ul += "<li class='bid_industry'><span class = 'bid_ind_title'><a href='#' rel=''>" + data.bids[i].ind + "</span></a><span class='bid_ind_value'>" + data.bids[i].v + "</span></li>";                    
                }

                main_ul += "</ul>";
                $("#content").prepend(main_ul).find("ul:first");
                uls = $("#content").children();
                    
                    //Counting elements and substracting last one                                      
                    if (uls.length>5){
                    $(uls.get(uls.length-1)).remove();
                
                }

                

            } 
                        
        } // end of pusher function 

    </script>
      


</body>
</html>

Проблема все в той же рекурсивной функции Если ее убрать то скрипт после обхода всего JSON файла останавливается и повторно не работает так как больше ничего его не вызывает. Если оставить то данные начинают появляться слишком быстро вне зависимости от таймаута так как скрипт прощелкивает файл грузит его как я понимаю (или недопонимаю) в память и вывод данных по function pusher начинает проходить рывками показывая списки UL не по одному а по три 5 и сразу все.

Уважаемые знатоки, подскажите пожалуйста как можно вызвать эту фунцкцию fetch_data не рекурсией а только после прохода всех данных из файла JSON то есть как задать ей условия запуска заново но только после того как прошла весь файл JSON? Надеюсь объяснил понятно. Сама идея скрипта должна выглядеть вроде этого сайта (правый столбец) http://indexssp.com/
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы при работе с Drag magnus-crank ExtJS 0 23.12.2012 20:28
Скрипт при работе с чербоксами dmitry111 Общие вопросы Javascript 4 27.08.2012 18:08
Возможности JavaScript при работе с графикой PetrS Общие вопросы Javascript 2 20.03.2012 18:33
проблема с событиями при работе с Ext.extend slavik27 ExtJS 1 04.09.2011 13:05
<= IE8 memory leak, IE9 - fine AbNormy Internet Explorer 1 20.05.2011 19:47