0

我一直在查看 Flattr 的 API,http://flattr.com/support/integrate/js,有一种很酷的方式来接受查询变量以供其加载 JavaScript。

我的问题是,大多数 API 是否使用 JavaScript 以外的东西来接受这些不同的变量来提供服务?例如:Ruby on Rails PHP Python

然后这些被各自的语言解析并作为输出的 JavaScript 返回到请求的网站?

干杯

4

3 回答 3

1

Javascript 本身完全能够通过读取 document.getElementsByTagName("script") 并进一步解析/匹配它们的 src 属性来读取它是如何嵌入到它所属的 HTML 中的。因此,它进一步解析最后附加的查询变量,并在其中动态(全部在javascript,客户端)加载组件,这根本不是问题。

任何允许您打包整个内容并部署到您自己的 Web 服务器的 JavaScript 库都应该采用这种方法,因为无论如何都没有服务器来处理请求。

另一方面,托管在允许您使用的其他站点(如 YUI)上的 javascript 库可能会采用您提到的服务器方法。

于 2011-12-29T17:34:54.957 回答
1

以我个人的经验,我从事的项目使用服务器端语言来处理获取参数。
因此,请求可能是 /myjavascript.js?id=123123 服务器端语言将为该请求创建正确的 javascript。

将所有内容都保存在服务器端的好处是不允许用户看到正在发生的事情。如果这对您来说不是问题,那么 javascript 不仅能够处理不同的参数。

于 2011-12-29T17:36:52.353 回答
1

根据我的经验,嵌入到其他网站的小部件通过从脚本标签中解析它们来获取参数是相当普遍的。它使小部件脚本静态且独立,因此更易于通过例如分发。一个快速的 CDN。当您要说服其他人将您的 javascript 添加到他们的网站时,性能很重要,因为小部件的性能不佳会使整个网站显得迟缓。

然而,指定参数比查询参数更好的地方是在 URL:s 散列部分中指定它们,因为在检查缓存时该部分不包括在内,因此脚本必须下载的次数更少——这当然是对性能有好处,尤其是在参数可能发生很大变化的情况下。

于 2011-12-29T22:32:30.420 回答