Newsgroup: it.comp.www.html
Titolo: precedenza al caricamento delle immagini di sfondo

salve,
è possibile imporre ai browser di caricare determinate immagini prima di
altre, tipo le immagini di sfondo nei css, o di sapere quando queste
immagini sia state caricate definitivamente per far partire delle
procedure...
spero di non essere stato criptico
grazie a tutti
Umberto
--
Newsgroup robomoderato - gli articoli vengono approvati automaticamente

 spero di non essere stato criptico
Un po'.
A quali procedure ti riferisci?


 --
ho un div con una immagine di sfondo che si visualizza (limmagine) dopo che
è stato renderizzato a video quello che è dentro il div(testo e altre
immagini), vorrei quantomeno vederli insieme se fosse possibile, o potre
sapere quando lo sfondo è caricato per riempire il div con il contenuto


 procedure...
Premetto che non e` un metodo deterministico.
Di solito i browser caricano la roba nell'ordine in cui la trovano nel 
codice, quindi scaricano l'html, iniziano ad interpretarlo, trovano i css 
e i js nell'head e li scaricano, poi continuano a parsare l'html e nel 
frattempo lo scrivono a video, trovano un img e iniziano a scaricarlo, 
ecc. ecc. Alla fine parsano i css e iniziano a caricare le immagini 
contenute li`.
Ripeto: non e` detto che sia cosi`. Alcuni browser potrebbero aprire 
thread paralleli per parsare i css in parallelo all'html, e quindi 
"incasinare" l'ordine dei download.
Puoi provare a mettere il css inline per l'elemento di cui vuoi caricare 
il background, in modo che il browser trovi prima l'immagine di sfondo di 
quelle sopra, ma non e` un metodo sicuro.
Bye.


 
ho risolto con un metodo trovato su google ;-)
  <script>
    /* <![CDATA[ */
      var myImages = new
Array("
http://www.miohost.net/img/prima.png
","
http://www.miohost.net/img/seconda.png
")
 
      if (document.images) {
        var preImages = new Array(),currCount = 0
        var loaded = new Array(),i,timerID
      }
 
      function loadImages() {
        for (i = 0; i < myImages.length; i++) {
          preImages[i] = new Image()
          preImages[i].src = myImages[i]
        }
        for (i = 0; i < preImages.length; i++) {
          loaded[i] = false
        }
        checkLoad()
      }
 
      function checkLoad() {
        if (currCount == preImages.length) {
          document.getElementById("load").style.display = 'none';
          document.getElementById("corpo").style.visibility = 'visible';
          return
        }
        for (i = 0; i <= preImages.length; i++) {
          if (loaded[i] == false && preImages[i].complete) {
            loaded[i] = true
            currCount++
            }
          }
        timerID = setTimeout("checkLoad()",10)
      }
      function timer(){
        var i = 10;
        return i;
      }
      /* ]]> */
  </script>
<body onload="loadImages();">
  <div id="contenitore">
    <div id="load">Loading........</div>
    <div id="corpo"
style="visibility:hidden;backgroung-image:url(img/prima.png);"></div>
  </div>
</body>


 ho risolto con un metodo trovato su google ;-)
Sei consapevole che quella pagina non verra` mai indicizzata dai motori di 
ricerca (e se e` la home, nessuna parte del sito lo sara`) e che se un 
utente ha js disabilitato non vedra` il tuo sito?
Bye.
