2015-05-28 73 views
0

我有這樣的代碼: First.html ...load()jQuery的慢時包括像JavaScript或CSS腳本

<script type="text/javascript" src="../js/jquery-1.11.3.js"></script> 
<script type="text/javascript" src="../js/jquery-ui.min.js"></script> 
<script type="text/javascript" src="../js/prj1100.js"></script> 
<LINK href="../css/prj1100.css" rel="stylesheet" type="text/css"> 
.. 

事件加載page.html中

jQuery(".content").click(function(){ 
$(".content_2").load('page.html');} 

頁面內.html,有:

<script type="text/javascript" src="../js/jquery-1.11.3.js"></script> 
<script type="text/javascript" src="../js/jquery-ui.min.js"></script> 
<script type="text/javascript" src="../js/prj1100.js"></script> 
<LINK href="../css/prj1100.css" rel="stylesheet" type="text/css"> 
<?php 

... 

此代碼完美工作,但點擊更多t一次加載這個頁面花費太多時間來顯示page.html。它似乎每次將.load()實例加入到內存中。

我再次包含在page.html中,因爲在first.html上聲明的不是繼承到page.html。

我該如何改進此代碼?

+0

難道你不會遇到'RangeError:超過最大調用堆棧大小嗎? – Gideon

回答

0

通常,我們不必在兩個頁面中重複鏈接jQuery庫和其他文件。 鏈接到first.html的庫和樣式表也必須適用於page.html。請參閱此鏈接Plunkr

的index.html

<h1>Hello Plunker!</h1> 
<button>Load First</button> 
<div class="first"></div> 

<script src="//code.jquery.com/jquery-1.11.3.min.js"></script> 
<script src="script.js"></script> 
<script> 
    $(document).ready(function() { 
    alert('index loaded!'); 
    $('button').click(function() { 
     $('.first').load('first.html'); 
    }) 
    }); 
</script> 

first.html

<h1>Hello First!</h1> 

<script> 
    $(document).ready(function() { 
    alert('first loaded!'); 
    }); 
</script> 

不過,如果你還是要在兩個頁面上的所有文件和腳本鏈接,最有效的方法做到這一點是在你的網頁的底部。 DOM加載時間顯着縮短。

0

對不起,我無法發表評論,所以我必須問我的問題作爲答案,你想加載html contentajax? 如果是這樣,你需要一些改變應用到你的代碼中,首先你應該添加classid目標內容,就像這樣:

<body> 
    <div class='target'> 
     // .... 
    </div> 
</body> 

,那麼你應該只加載target,像這樣:

$('#result').load(URL + " .target"); 

您也可以使用[pjax]。 (https://github.com/defunkt/jquery-pjax

我希望我能正確地得到你,並幫助你。