客户端Web服务

时间:2010-11-18 18:26:05

标签: javascript jquery html ajax

背景

我有一个HTML文件,它接受多个参数并使用javascript动态呈现页面。该页面从多个静态本地XML文件中提取数据并进行处理。

例如,service.html?ID?123返回特定于ID号123的页面。

这很简单,已经完成了。

问题:

我想使用jQuery ajax将渲染结果拉回主页面。目前,我正在使用这样的东西:

  

$。AJAX({

      type: "GET",
      url: "service.html?ID?123",
      success: function(msg){
          alert( msg );
      }   
     

});

但是,这会在我的javascript运行之前正确返回我的html页面。任何人都可以想到这样的事情的任何变通方法吗?我不想在父级中运行结果数据。

可能的解决方案:

我正在考虑在隐藏的iframe中运行“服务”,并将其写入可以通过ajax引入的可重用的静态html文件。这样的事情是否可行? nope :现在我想起来了 - 我认为这不是一个可行的解决方案,因为iframe中的所有处理都会控制主页面中的javascript线程。这正是我想要避免的事情

修改 此外,由于我所处的环境(.hta),网络工作者将无法工作。

2 个答案:

答案 0 :(得分:0)

IFRAME解决方案应该有效。只需在页面上放置一个隐藏的IFRAME,然后将页面加载到其中:

$("#the_iframe").attr("src", "service.html?ID?123");  

这将运行与页面关联的JavaScript代码。然后,您可以访问该页面(其生成的内容):

var data = $("#the_iframe").contents().find("#data_container");

答案 1 :(得分:0)

如果我明白你的需要......

$(function() {

    $.ajax({

          type: "GET",
          url: "service.html?ID?123",
          success: function(msg){
              alert( msg );
          }   

    });
 }
);

将在加载所有页面但未呈现的情况下运行该程序。但是,从Ajax成功函数生成的任何元素引用都可以。