jQuery和数据属性来处理所有ajax调用?

ole*_*ius 6 ajax jquery custom-attributes

我正在考虑通过在属性链接上启用ajax来减少javascript代码量的方法.例:

<a href="/Default/Link.html" data-endpoint="/Ajax/Link.html" rel="targetId" async="true">Click me!</a>
Run Code Online (Sandbox Code Playgroud)

async="true"将禁用link(href)的默认行为,并使用该data-endpoint值执行ajax调用并将其插入到中定义的元素id rel.

我不是JS专家,所以我很欣赏使用这种方法的任何想法或陷阱.诸如cache:true等选项也很酷,但也可以传入,但不是真的需要,因为我想这样做以获得包含或多或少的实时数据的部分视图(不需要缓存).

(这是从我在facebook上如何最小化他们的代码的一个话题中得到启发,但与他们如何优化所有内容到每个位'n字节相比可能非常简化)

Gab*_*oli 9

像这样的东西

HTML

<a href="/Default/Link.html" 
    data-endpoint="/Ajax/Link.html" 
    data-target="targetId" 
    data-cache="false",
    data-async="true">Click me!</a>
Run Code Online (Sandbox Code Playgroud)

jQuery的

$('a[data-async="true"]').click(function(e){
    e.preventDefault();
    var self = $(this),
        url = self.data('endpoint'),
        target = self.data('target'),
        cache = self.data('cache');

    $.ajax({
        url: url,
        cache : cache,
        success: function(data){ 
                       if (target !== 'undefined'){
                          $('#'+target).html( data );
                       }
                 }
    });
});
Run Code Online (Sandbox Code Playgroud)