Въпрос за закъснение с js

baraban

Registered
Здравейте,
Проблема ми е такъв - има страница в която има 5 iframe. Не може ли да се сложи един скрипт който да зарежда фреймовете един след друг с известно закъснение. Защото почват да се бият и страницата се зарежда бавно.
Например
<html>
<body>
<irame id="one" src = "dfhgsdh" ></iframe>
//след 2 секунди (примерно) да тръгне
<irame id="two" src = "xcbzcb" ></iframe>
и така нататък
</body>
</html>
 
Точно както си го мислиш няма как да стане.
Няма как с JS да забавиш рендърването на елементите.
Написах малък скрипт, който динамично създава iframe елементите един след друг.
Демо може да намериш тук на адреса http://jsbin.com/ulupeg

Ето кода:
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>JS Bin</title>
<style>
  iframe { width:200px; height:100px; border: 1px solid red; margin: 20px; }
  #text {
    width:350px; height:200px; border: 1px solid #ccc; position: absolute;
    left:0; bottom:0; overflow: auto;
  }
</style>
</head>
<body>
  <div id="text"></div>
  <script>
    // Обвивка на кода
    (function(doc, win){
      
      // Взимаме body елемента
      var body = document.body || document.getElementsByTagName('body')[0];
      
      // Набор от адреси за iframe-овете
      var iframes = [
        'http://abv.bg', 'http://web-tourist.net', 'http://kaldata.com'
      ];
      
      // Тук взимаме броя на фреймовете, които ще зареждаме
      var iframesCount = iframes.length;
      
      // Съдържа броя на заредените фреймове
      var iteration = 0;
      
      // Съдържа създаденият от скрипта елемент
      var iframe;
      
      // За извеждане на текста (нужно е само за демото)
      var text = document.getElementById('text');
      
      // Функцията която създава фреймовете
      function createIframe () {
        
        // Само за демото
        text.innerHTML += 'createIframe() call #'+(iteration+1)+'<br>';
        
        // Ако сме заредили всички фреймове, прекъсваме рекурсията
        if (iteration >= iframesCount) return true;
        
        // Само за демото
        text.innerHTML += '- - Creating iframe for '+iframes[iteration]+'<br>';
        
        // Създаваме iframe елемента
        iframe = document.createElement('iframe');
        
        // Задаваме адрес и инкрементираме броя на заредените фреймове
        iframe.src = iframes[iteration++];
        
        // Тук става рекурсията
        // Закачаме createIframe за onload event-а на фрейма
        if (iframe.attachEvent){
          iframe.attachEvent("onload", createIframe);
        }
        else {
          iframe.onload = createIframe;
        }
        
        // Добавяме фрейма към DOM-а на страницата
        body.appendChild(iframe);
      };
      
      // Стартираме зареждането на фреймове
      createIframe();
    })(document, window);
  </script>
</body>
</html>
 

Горе