Jump to content
  • 0

Подгрузка только один раз


Dude
 Share

Question

Подскажите пожалуйста, чем надо дополнить javascript

чтобы при возврате на уже ранее загруженный таб, он заново не загружался.

Как я понимаю мне надо чтобы при загрузке таба, его данние где-то сохранялись, а потом javascript проверял, если данные по каму-то табу пусты, то их нужно записывать, а если уже записаны, то выводить.

Я читал тему: http://forum.htmlbook.ru/index.php?showtopic=11189 , но ничего не понял.

Если вам не сложно, напишите хоть несколько строк. Я буду вам очень благодарен

<html>
<head>
<title>jQuery: AJAX Tabs</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
var pageUrl = new Array();
pageUrl[1] = "tab1.html";
pageUrl[2] = "tab2.html";
pageUrl[3] = "tab3.html";
pageUrl[4] = "tab4.html";

function loadTab(id)
{
if (pageUrl[id].length > 0)
{
$("#preloader").show();
$.ajax(
{
url: pageUrl[id],
cache: false,
success: function(message)
{
$("#tabcontent").empty().append(message);
$("#preloader").hide();
}
});
}
}

$(document).ready(function()
{
$("#preloader").hide();

$("#tab1").click(function()
{
loadTab(1);
});

$("#tab2").click(function()
{
loadTab(2);
});

$("#tab3").click(function()
{
loadTab(3);
});

$("#tab4").click(function()
{
loadTab(4);
});
});
</script>
</head>
<body>

<script type="text/javascript">
var pageUrl = new Array();
pageUrl[1] = "tab1.html";
pageUrl[2] = "tab2.html";
pageUrl[3] = "tab3.html";
pageUrl[4] = "tab4.html";
document.write(pageUrl[1]);
</script>

<div class="container">

<div class="navcontainer">
<ul>
<li><a id="tab1" href="#">Tab 1</a></li>
<li><a id="tab2" href="#">Tab 2</a></li>
<li><a id="tab3" href="#">Tab 3</a></li>
<li><a id="tab4" href="#">Tab 4</a></li>
</ul>
</div>

<div id="preloader">
<img src="loading.gif" align="absmiddle"> Loading...
</div>

<div id="tabcontent">
Here is a simple demonstration of how AJAX Tabs work.
</div>

</div>
</body>
</html>

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0
<html>
<head>
<title>jQuery: AJAX Tabs</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
var pageUrl = new Array();
pageUrl[1] = "tab1.html";
pageUrl[2] = "tab2.html";
pageUrl[3] = "tab3.html";
pageUrl[4] = "tab4.html";

function loadTab(id)
{
if (pageUrl[id].length > 0)
{
$("#preloader").show();

$("#tabcontent").load(pageUrl[id]);
$("#preloader").hide();
}
prov[id] = 0;
}

$(document).ready(function()
{
$("#preloader").hide();

$("#tab1").click(function()
{
if(prov[1] !== 0){
loadTab(1);
}
});

$("#tab2").click(function()
{
if(prov[2] !== 0){
loadTab(2);
}
});

$("#tab3").click(function()
{
if(prov[3] !== 0){
loadTab(3);
}
});

$("#tab4").click(function()
{
if(prov[4] !== 0){
loadTab(4);
}
});
});
</script>
</head>
<body>

<div class="container">

<div class="navcontainer">
<ul>
<li><a id="tab1" href="#">Tab 1</a></li>
<li><a id="tab2" href="#">Tab 2</a></li>
<li><a id="tab3" href="#">Tab 3</a></li>
<li><a id="tab4" href="#">Tab 4</a></li>
</ul>
</div>

<div id="preloader">
<img src="loading.gif" align="absmiddle"> Loading...
</div>

<div id="tabcontent">
Here is a simple demonstration of how AJAX Tabs work.
</div>

</div>
</body>
</html>

Edited by -=PSU=-
Link to comment
Share on other sites

  • 0
поглядите на javascript консоль ошибок. в мозиле Инструменты - Консоль ошибок. а в опере Инструменты - Дополнительно - Консоль ошибок

Там пишет шо : "prov" is not defined.

когда я удаляю сточку if(prov[число] !== 0) , то загружается также как прежде(при переключении загружается заново).

Link to comment
Share on other sites

  • 0
<html>
<head>
<title>jQuery: AJAX Tabs</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
var prov = new Array();
var pageUrl = new Array();
pageUrl[1] = "tab1.html";
pageUrl[2] = "tab2.html";
pageUrl[3] = "tab3.html";
pageUrl[4] = "tab4.html";
prov[1] = 1
prov[2] = 1
prov[3] = 1
prov[4] = 1

function loadTab(id)
{
if (pageUrl[id].length > 0)
{
$("#preloader").show();

$("#tabcontent").load(pageUrl[id]);
$("#preloader").hide();
}
prov[id] = 0;
}

$(document).ready(function()
{
$("#preloader").hide();

$("#tab1").click(function()
{
if(prov[1] !== 0){
loadTab(1);
}
});

$("#tab2").click(function()
{
if(prov[2] !== 0){
loadTab(2);
}
});

$("#tab3").click(function()
{
if(prov[3] !== 0){
loadTab(3);
}
});

$("#tab4").click(function()
{
if(prov[4] !== 0){
loadTab(4);
}
});
});
</script>
</head>
<body>

<div class="container">

<div class="navcontainer">
<ul>
<li><a id="tab1" href="#">Tab 1</a></li>
<li><a id="tab2" href="#">Tab 2</a></li>
<li><a id="tab3" href="#">Tab 3</a></li>
<li><a id="tab4" href="#">Tab 4</a></li>
</ul>
</div>

<div id="preloader">
<img src="loading.gif" align="absmiddle"> Loading...
</div>

<div id="tabcontent">
Here is a simple demonstration of how AJAX Tabs work.
</div>

</div>
</body>
</html>

Edited by -=PSU=-
Link to comment
Share on other sites

  • 0

Чонечно большое спасибо, все работает, но я имел в виду, что при возврате на ранее загруженный таб, его содержимое заново загружатся не будет, но будет показываться. Как будто данные с предыдущего таба на странице есть, но находятся в скрытом диве.

Link to comment
Share on other sites

  • 0

Может мне легче использовать какой-то другой скрипт. Например тот, где все загружается сразу. Только сделать так, чтобы при переключении, выполнялась функция подгрузки.

Link to comment
Share on other sites

  • 0

Большое спасибо -=PSU=- . Проблема почти решена. Я скачал обычные табы(переключение без подгрузки) и там вписал скрипт, чтобы выполнялась подгрузка. Но все было как раньше. При возврате все подгружалось заново. Именно тогда я воспользовался скриптом, который написал -=PSU=- . теперь при возврате, подгрузка блокируется, и просто выводится уже загруженный ранее таб. Вот только если я подгрузку делаю в несколько табов, то они перестают переключаться. Никто не знает что можно сделать?

Edited by Dude
Link to comment
Share on other sites

  • 0
Кто мне может рассказать негативные стороны данного скрипта и данного подхода, который выдал нам Dude?

Я скрипт выбрал первый, что мне попался, и я не знаю чем они могут отлитатся. А нащет подхода, то я даже не знаю с какой стороны подойти. Все, что я не делаю, у меня ничего не получается. А я уже две недели пытаюсь.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy