最佳性能+;jqueryajax+;Div刷新
有人对jqueryajax刷新DIV的最佳选项有好的建议吗 以下是我努力实现的目标:最佳性能+;jqueryajax+;Div刷新,jquery,ajax,Jquery,Ajax,有人对jqueryajax刷新DIV的最佳选项有好的建议吗 以下是我努力实现的目标: 强调了性能的优化 左边会有导航,就像Google+/Facebook一样,右边会有内容窗格(DIV) 当用户单击每个导航时,内容窗格将相应刷新,而不会刷新整个页面 在服务器上使用不同的方法生成每个部分的内容。这样,您就可以简单地调用该方法来获取特定的内容,而不是调用一个通用方法来提取您需要的内容。一旦有了获取每个内容项的不同方法,就可以使用指向该方法的href作为链接,并使用jQuery方法通过AJAX检索内容
在服务器上使用不同的方法生成每个部分的内容。这样,您就可以简单地调用该方法来获取特定的内容,而不是调用一个通用方法来提取您需要的内容。一旦有了获取每个内容项的不同方法,就可以使用指向该方法的href作为链接,并使用jQuery方法通过AJAX检索内容并更新内容区域 下面的示例假设您的每个导航链接都具有class
nav link
,并且内容区域具有idcontent
。它还假设您已经包含jQuery.js
<div class="menu">
<ul>
<li><a href="/foo" class="nav-link">Foo</a></li>
...
</ul>
</div>
<div id="content">
... initial content...
</div>
<script type="text/javascript">
$(function() {
$('.nav-link').click( function() {
var href = $(this).attr('href');
$('#content').load( href, function() {
// you can do something here after the content is loaded if needed
});
return false; // don't actually follow the link
});
});
</script>
...
... 初始内容。。。
$(函数(){
$('.nav link')。单击(函数(){
var href=$(this.attr('href');
$('#content').load(href,function(){
//如果需要,可以在加载内容后在此处执行某些操作
});
return false;//不实际跟踪链接
});
});
在服务器上使用不同的方法生成每个部分的内容。这样,您就可以简单地调用该方法来获取特定的内容,而不是调用一个通用方法来提取您需要的内容。一旦有了获取每个内容项的不同方法,就可以使用指向该方法的href作为链接,并使用jQuery方法通过AJAX检索内容并更新内容区域
下面的示例假设您的每个导航链接都具有classnav link
,并且内容区域具有idcontent
。它还假设您已经包含jQuery.js
<div class="menu">
<ul>
<li><a href="/foo" class="nav-link">Foo</a></li>
...
</ul>
</div>
<div id="content">
... initial content...
</div>
<script type="text/javascript">
$(function() {
$('.nav-link').click( function() {
var href = $(this).attr('href');
$('#content').load( href, function() {
// you can do something here after the content is loaded if needed
});
return false; // don't actually follow the link
});
});
</script>
...
... 初始内容。。。
$(函数(){
$('.nav link')。单击(函数(){
var href=$(this.attr('href');
$('#content').load(href,function(){
//如果需要,可以在加载内容后在此处执行某些操作
});
return false;//不实际跟踪链接
});
});
$.ajax({
网址:,
成功:功能(数据){
$('#divId').html(数据);
}
});
$.ajax({
网址:,
成功:功能(数据){
$('#divId').html(数据);
}
});
对于ajax调用,大部分开销将来自XHR请求本身。尽管您可以在变量中缓存必要的对象,以尽可能提高性能。假设您的HTML如下所示:
<ul id="nav">
<li><a href="content1.html">Link 1</a></li>
<li><a href="content2.html">Link 2</a></li>
</ul>
<div id="contentpane"></div>
对于ajax调用,大部分开销将来自XHR请求本身。尽管您可以在变量中缓存必要的对象,以尽可能提高性能。假设您的HTML如下所示:
<ul id="nav">
<li><a href="content1.html">Link 1</a></li>
<li><a href="content2.html">Link 2</a></li>
</ul>
<div id="contentpane"></div>
有一个包含菜单的页面,并且要显示的所有页面都有单独的页面(没有菜单)。在菜单项上单击,发送一个AJAX请求以获取相应的页面(将返回完整页面的html),并将其设置为div的html。只需注意重复的元素ID/名称,如果不小心,这可能会导致javascript问题。有一个包含菜单的页面,并为要显示的所有页面(不带菜单)设置单独的页面。在一个菜单项上单击,发送一个AJAX请求以获取适当的页面(将返回完整页面的html),并将其设置为div的html。只需注意重复的元素ID/名称,如果不小心,这可能会导致javascript问题。很高兴知道。我读到,出于性能原因,最好使用函数(e){…然后使用函数e.preventDefault()而不是返回false,因为返回false也会触发e.stopPropagation,这会使函数速度稍慢。因此,返回false被称为“错误做法”但是它当然可以工作;)很好知道。我读到,出于性能原因,最好使用函数(e){…然后使用e.preventDefault()而不是返回false,因为返回false也会触发e.stopPropagation,这会使函数的速度变慢。因此,返回false被称为“错误做法”,但它当然可以工作;)