当使用jQuery进行ajax时,脚本并不总是完全执行

时间:2012-10-29 22:13:22

标签: javascript jquery

我有条款在某种条件下执行脚本;

//if artist page clicked run profile script
if (id == 'artist_link') {
        $.getScript("AJAX/get_profile.js");
}

我遇到的问题是脚本通常无法完全执行。有时,只有部分内容才会执行,所以不执行任何操作。我真的无法提供比这更多的细节。奇怪的是,当萤火虫打开时它总是完全执行,我找不到任何问题。我测试过的浏览器都有chrome和firefox

带有get_profile.js文件的

jsfiddle

3 个答案:

答案 0 :(得分:1)

我可能错了,但据我所知,$(location)不是有效的jQuery。仅使用$(location).attr('pathname')替换window.location.pathname可能会消除可能的错误。

其他一些一般性的东西,不应该真正影响它是否有效,但值得一提的是提高整体的好感:

    从JSON调用返回的
  • data是一个对象,而不是一个数组。要访问展示图片的DP元素,您应使用data.DP而不是data['DP']name相同,以及其他几个元素
  • 不推荐使用
  • .click(),而是使用.on()绑定事件
  • 你正在循环一个集合($.each (data, function(key, val){)并在循环内部修改DOM($.append()) - 你最好在循环中构建一串HTML ,然后在循环后将其添加到单个附加中,因为DOM插入对于性能来说很慢
  • 您多次使用相同的选择器(请参阅$('#origin')),这会导致jQuery每次都必须查看该元素。缓存它然后调用方法:
    • $origin = $('#origin');
  • 或对同一元素的链调用:
    • $('#origin').html('a').append('b').append('c');

答案 1 :(得分:0)

我几乎100%肯定你的get_profile.js文件中有一个错误。如果它正在执行,那么加载文件没有任何问题。问题存在于你的js文件中,如果没有看到它的代码,我们就无法真正调试它。

答案 2 :(得分:0)

修正了它!我不知道为什么我没有看到这个,但是在页面被打开之前,脚本正在被调整,导致脚本无法正常运行。无论如何,有点整理,我已经修好了。谢谢你的帮助!