我使用jQuery的AJAX从服务器获取新内容。数据加载中JSON:jQuery完全用另一个DOM替换元素的DOM - 更快的方式?
$.ajax({
url: url,
data: {
'ajax': '1',
},
dataType: 'json',
success: somefunction
});
对于服务器端应用程序的限制,我不能设置更多的JSON变量里面,所以我要加载到的一切内容。这就是为什么我要加载结果到了jQuery,比搜索和替换网页的某些元素,像这样(在somefunction
使用):
var somefunction = function(data) {
var con = $('<div></div>').html(data.content); // just $(data.content) is not working
$('div#mainContent').html(con.find('div#ajax-content').html());
... // same process with three more divs
}
编辑:请注意,我必须做同样的过程,以取代三个divs!
还有更多关于这个,但作为例子,它是足够的,我希望。我的问题:对于某种逻辑方式,我期望将结果加载到DOM($(data.content)
),解析为html(con.find('dix#ajax-content').html()
)并返回到DOM($('div#mainContent').html()
)对我来说似乎失去了一些资源并降低了性能,所以我想知道是否有什么更快的方式做到这一点,直接加载DOM,如:
$('div#mainContent').dom(con.find('div#ajax-content').dom());
我试图谷歌,但也许我不知道在类型还jQuery的文档不会对我帮助很大。
一些事实:
- 的jQuery 1.9.1
- jQuery UI的1.10.3可
最后,我知道,这将是更加好做与服务器端的东西应用程序来提供更多的JSON变量,但是,我需要编写不那么容易的代码和平,这需要更长的时间来开发我现在没有的东西。在客户端执行它现在是暂时的解决方案,但是,我不想降低性能。
侧面的问题:
是正确使用find()
功能在这种情况下,或有什么更好的呢?
EDIT 2(不工作解析字符串) 我期待这个工作,但它不是:
content = '<div id="ajax-title">Pečivo běžné, sladké, slané</div>
<div id="ajax-whereami"><a href="/category/4">Chléba a pečivo</a> » Pečivo běžné, sladké, slané</div>';
$(content);
尝试data.content.toString() – basarat
@BASarat我假设data.content是一个字符串。 – HMR
@BASarat比我无法解析它并找到请求中特定div的内容。无论如何''data.content'是字符串。这对标记为“不起作用”的行没有帮助。 – tomis