我一直在寻找Flattr的API,http://flattr.com/support/integrate/js,它有一种很酷的方式来接受JavaScript加载的查询变量。
我的问题是,大多数API使用JavaScript之外的其他东西来接受这些服务的不同变量吗?例如: Ruby on Rails PHP 蟒
然后这些是由相应的语言解析并作为输出的JavaScript返回到请求网站?
干杯
答案 0 :(得分:1)
通过阅读document.getElementsByTagName(" script")并进一步解析/匹配其src属性,Javascript本身完全能够阅读它如何嵌入到它所属的HTML中。因此,它进一步解析最后附加的查询变量,并动态地(所有在javascript,客户端)加载组件内部都不是问题。
任何允许您打包整个内容并部署到您自己的Web服务器的JavaScript库都应采用这种方法,因为无论如何都没有服务器来处理请求。
另一方面,托管在其他允许您使用的网站上的javascript库(如YUI)可能采用您提到的服务器方式。
答案 1 :(得分:1)
根据我的个人经验,我参与过的项目使用服务器端语言来处理params 所以请求可能是/myjavascript.js?id=123123服务器端语言会为该请求创建正确的javascript。
保持服务器端的所有内容的优点是不允许用户查看正在发生的事情。如果这对您来说不是问题,那么javascript就能够处理不同的参数。
答案 2 :(得分:1)
根据我的经验,嵌入到其他网站的小部件通过从脚本标记解析它们来获取参数是相当普遍的。它使小部件脚本静态且独立,因此更容易通过例如分发。一个快速的CDN。当你要说服其他人将你的javascript添加到他们的网站时,性能很重要,因为小部件的糟糕表现会使整个网站显得迟钝。
指定参数而不是查询参数的更好的地方是在URL中指定它们:s hash-part,因为在检查缓存时不包括该部分,因此脚本必须下载的次数更少 - 这当然对性能有好处,特别是如果参数可能会发生很大变化。