0

我正在使用两种方法创建一个简单的类:

  • 初始化('/path/to/xmlfile')
  • 测试(东西)

主要问题是测试方法取决于加载工作的xml文件......所以,当我做这样的事情时:

f.init('/sources/model.xml');
f.test(it);

它失败了,因为test使用了加载 xml 文件时创建的结构。

由于我使用 Jquery 加载 xml 文件,使用get方法,我可以这样做一些事情:

f.init('/sources/model.xml',
    function() {
       if (this.test(it) ) {
            alert('OK, it works!');
        }else {
            alert('Wrong!');
       }
   });

并将我的回调放在get Jquery方法的成功回调中......但是,有可能做我上面放的类似的事情吗???

我将不胜感激任何帮助。

注意:我尝试在测试函数中使用变量“已加载” ,并使用setInterval函数检查是否加载了 xml 文件,但它对我不起作用。

4

1 回答 1

0

您应该使用回调来防止阻塞,但如果您真的希望init函数阻塞直到它收到响应,您可以选择使用 $.ajax 方法而不是 $.get

$.ajax 支持一个async选项,如果设置为false将阻止脚本执行,直到服务器响应

基本用法:

$.ajax({
    url: "/path/to/file"
    type: "GET",
    async: false,
    success: function(data) {
        // do something
    }
});

文档, http://api.jquery.com/jQuery.ajax/

于 2012-12-27T13:16:03.370 回答