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!!!

- Rejestracja:prawie 22 lata
- Ostatnio:ponad 14 lat
- Postów:2998
Możesz to zrobić przynajmniej na dwa sposoby.
- Użyć ramek będź pływającej ramki (nieużywane rozwiązanie odkąd pamiętam)
- 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.
- Rejestracja:ponad 21 lat
- Ostatnio:ponad 12 lat
- Postów:501
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...

- Rejestracja:prawie 22 lata
- Ostatnio:ponad 14 lat
- Postów:2998
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...

- Rejestracja:ponad 21 lat
- Ostatnio:ponad 6 lat
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 ...

- Rejestracja:prawie 22 lata
- Ostatnio:ponad 14 lat
- Postów:2998
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...

- Rejestracja:prawie 23 lata
- Ostatnio:ponad 3 lata
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
}
?>
//-->
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.