脚本拼图<script src =“ajaxpage.php?emp_id = 23”>?</script>

时间:2009-12-30 07:56:15

标签: javascript ajax

非常简单的Ajax请求获取员工ID并将用户信息返回为HTML哑。
Request ajax("employee/info?emp_id=3543")

回复
id = 3543
名称=某个名称

这只是填充UI的另一个简单的JS技巧。

但是我不明白下面的内容是如何能够正确执行并转储HTML代码的。
<script type="text/javascript" src="employee/info?emp_id=3543" />

当页面遇到以下代码时,它会像执行ajax请求一样执行并将代码转储到页面中。唯一的区别是它不再像 A jax那样异步。
问题: 这是正确的方法吗?它的+ ves和-ves。
对于用户来说哪个是正确的风景呢?
这是否也意味着任何带有“src”标签的HTML标签都可以这样使用?

2 个答案:

答案 0 :(得分:0)

  

这是正确的做法吗?它的+ ves   和-ves。

取决于您是否要使用异步(ajax)方式。没有像+ ve或-ve那样的东西。 后一种方法需要更多时间。

  

哪个是正确的   用户吗?

Ajax方式就是那种意义上的正确方法。

  

这是否也意味着任何HTML标记   拿“src”标签可以像   此?

src 用于指定源路径。这就是它的意图。

答案 1 :(得分:0)

我已经使用这种javascript加载来进行跨域脚本编写。它在哪里非常有用。这是一个显示我的意思的例子。

[请记住,JS不允许来自javascript的跨域调用;由于内置安全限制]

在域www.xyz.com上有一个服务,它为我提供了一个可以从http://xyz.com/users/list?age=20访问的用户列表 它返回一个json,使用如下的包装方法 JSON:

{username:"user1", age:21} 

如果我请求这个json包装的方法如下:

callMyMethod({username:"user1", age:21})

然后这是一个包裹的json,如果加载在我的页面上;将尝试调用名为callMyMethod的方法。这将在<script src="source">类型的声明中被允许,否则将不被允许。

所以我能做的如下

<script language="javascript" src="http://xyz.com/users/list?age=20"></script>
<script language="javascript">
    function callMyMethod(data)
    {
      //so something with the passed json as data variable.
    }
</script>

这将允许我填充来自其他域的JSON,否则我将无法做到。所以;你知道如何实现跨域脚本编写本来是一个难以解决的问题。

这只是其中一种用途。

有人会这样做的其他原因是:

  • 用他们的JS文件版本 版本。
  • 要解冻js文件,以便在js发生某些更改时将它们加载到客户端上,并且传递给URL的params将尝试获取最新的JS。这将使新的变化能够立即反映在客户端上。
  • 当您想要生成条件JS时。

您在示例中指定的用法可能不太有用;如果服务器处理需要时间,而且异步ajax调用将是首选,可能只会延迟页面加载。