javascript - Ajax .load 从服务器检索内容

标签 javascript jquery ajax

这是一个简单的疑问: 当我们使用像 $('#content').load( "page.php #content"); 这样的东西时,它会在服务器中加载整个 page.php “side”,然后提取 #content 元素,还是只加载指定的元素?

除此之外,$('#content').load( "page.php #content"); 是否与此相同:

$.ajax({
    url:"page.php",
    type:'GET',
    error: function(){
        alert("Oops!"); // Em caso de o AJAX dar erro (opcional)
    },
    success:
    function(data){
        $('#content').html($(data).find('#content').html());
    }
});

说到“从服务器获取的方法”?

最佳答案

是的,这些都是一样的,XMLHttpRequest 无法加载部分页面。
jQuery 将 url 和给定的选择器分开,然后根据 url 加载整个页面,然后使用 find() 根据传入的选择器作为过滤器提取给定的元素.

这是 jQuery load() 的缩短版(稍作修改),只是为了展示它是如何工作的

function(url, params, callback) {
    var selector, div, html, self = this;

    // if the url param contains a space, get the selector to use as filter
    if ( url.indexOf(" ") > -1 ) { 
        selector = jQuery.trim(url.slice( url.indexOf(" ") ));
        url = url.slice(0, url.indexOf(" "));
    }

    // make regular ajax call
    jQuery.ajax({
        url      : url,
        type     : "GET",
        dataType : "html",
        data     : params
    }).done(function(responseText) {
        div  = jQuery('<div>');
        html = jQuery.parseHTML(responseText);

        self.html(  div.append( html ).find(selector) );
    });

    return this;
}

关于javascript - Ajax .load 从服务器检索内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39403676/

相关文章:

javascript - JS中如何使用流

javascript - 如何在不添加随机数的情况下阻止css缓存?

javascript - jQuery.validate 立即验证字段而不是在提交时验证?

ruby-on-rails - 为什么在 Rails 应用程序中通过 ajax 替换表格内容后,提交按钮不起作用?

javascript - array.length 和空函数对我没有帮助

javascript - 用从源代码中删除代码代替显示无

javascript - 使用纯javascript发送Ajax请求从json文件中获取json数据

javascript - 如何给网页添加背景音乐?

c# - 使用 $.post 或 $.get 返回可下载的 zip 文件

javascript - Bootstrap 将文本框值添加到列表