Ładowanie strony... :(

0

Witam. Mam problem z ładowaniem strony. Chcę zrobić aby po kliknięciu na link ładował się TYLKO środek strony, a nie cała strona. I jak to zrobić ??? HELP!!!

0

Możesz to zrobić przynajmniej na dwa sposoby.

  1. Użyć ramek będź pływającej ramki (nieużywane rozwiązanie odkąd pamiętam)
  2. Napisać skrypt js, który podmieni konkretną część strony odpowiednią treścią (na js się nie znam, więc mnie o kod nie proś, ale wiem, że coś takiego się da zrobić) i następnie odpowiednio spreparować linka w menu czy co tam jeszcze innego.
0

Adam, ramki (plywajace) są jeszcze stosowane w ciemnych zakamarkach netu :]
A jesli wszystkie strony chcesz dać do pliku index.htm(l) to chyba nie jest to zbyt dobre rozwiazanie - mi sie nie chce np. ladowac 500kb pliku, nawet jesli potem strona by smigala...

0

Wiem, że pływające ramki są używane w zakamarkach netu. Jak gdzieś wygrzebiesz moją stronkę domową sprzed 5 lat, to tam też są. Ale żaden liczący się webmaster nie będzie czegoś takiego wykorzystywał dzisiaj. Natomiast jak chodzi o ładowanie 500 KB pliku, by potem śmigało, to to czasem nie jest głupie rozwiązanie... Jak masz coś napisane we flashu, to ci się ładuje po kilkaset kilo na każdą podstronkę i zawsze trza długo czekać. To taką stronę włączasz, żeby Ci się ściągnęło, a potem jesteś obsługiwany "na bieżąco" bez żadnego czekania. To wcale nie jest głupie...

0

Ja robie takie rzeczy jak shoutbox w takich ramkach (ma fajne scrolle i w ogole).

A wracajac do tematu to w msdnie jakos fajnie zrobili wgrywanie, gdy sie rozwija jakies menu to mamy napis loading (raczej nie dla picu), poza tym istnieja takie rzeczy jak ISAPI czy intraweb ...

0

możesz dać include();

0

możesz dać include();

Właśnie problem z include polega na tym, że wtedy musi Ci całą stronę załadować od nowa. A tego autor wątku nie chce...

0

A wracajac do tematu to w msdnie jakos fajnie zrobili wgrywanie

nie wiem jak to zrobili na msdnie ale mozna by to rozwiazac dynamicznie z tym ze potrzebny bedzie jakis skrypt server-side do obrobki danych:

Przyklad przed chwila przetestowany:

plik index.html z polem do wpisania nazwy pliku ktory ma zostac dynamicznie wstawiony na strone do warstwy test_div, mozna uzywac sciezek wzglednych i bez wzglednych z tym ze w przypadku pierwszym wczytywane pliki php nie beda parsowane...

<html>
<head>
  <script src="loadfile.php"></script>
<script>
<!--

    function fun() {
        var file = document.getElementById('frm').txt.value;
        loadfile(file, 'test_div');
    }

//-->
</script>
</head>
<body>
  <form id="frm">
    <input type="text" name="txt">
    <input type="button" value="Wczytaj" onclick="fun()">
  </form>
  <div id="test_div"></div>
</body>
</html>

skrypt loadfile.php wyglada tak:

<!--
<?php
  

    $content = '';
    $file = $_GET['file'];
    $id = $_GET['id'];
    $self = $_SERVER['PHP_SELF'];

    if($file && $id) 
    {
        function prepare($s) 
        {
            $s = addslashes($s);
            $s = str_replace("\r", '\r', $s);
            $s = str_replace("\n", '\n', $s);

            return $s;
        }

        if($fp = fopen($file, 'r')) 
        {
            while(strlen($buf = fread($fp, 8192))) $content .= $buf;
            fclose($fp);
        }

?>

  var e, c = '<?php echo prepare($content); ?>';
  if(e = document.getElementById('<?php echo $id; ?>')) e.innerHTML = c;

<?php

    }
    else 
    {

?>

  function loadfile(f, e) 
  { 
      f = escape(f);
      e = escape(e);
      var d = document;
      var h = d.getElementsByTagName('head')[0];
      var s = d.getElementById('loadScript');
      if(s) h.removeChild(s);
      s = d.createElement('script');
      s.id = 'loadScript';  
      s.type = 'text/javascript';
      s.src = '<?php echo $self; ?>?file=' + 
          f + '&id=' + e + '&rand=' + Math.random();
      h.appendChild(s); 
  }  

<?php

    }


?>
//-->

1 użytkowników online, w tym zalogowanych: 0, gości: 1