多平台开发实践指南
1. 跨域问题
在进行网络开发时,跨域问题是一个常见的挑战。现代浏览器都遵循同源策略,即 XMLHttpRequest(XHR)只能从与包含页面相同的域名、端口和协议中检索内容。这给许多潜在的混搭应用带来了难题,因为如果只能从自己的域名检索内容,就很难整合来自多个源的内容。
解决跨域问题的常见方法是使用 HTTP 代理,这是一种服务器端脚本,可以绕过同源策略。由于代理运行在服务器上,而不是浏览器中,因此可以自由访问任何域名。一般来说,代理会运行在与小工具页面相同的域名上,但会将所有请求转发到另一个域名。构建代理相对容易,它可以让小工具整合来自任何地方的内容。
许多 Web 小工具 API 会提供自己的内容代理,在部署到这些平台时,直接使用它们的代理即可。而桌面(以及一些移动)小工具平台虽然也有类似问题,但解决方案不同。这些平台的小工具通常从本地打包源提供服务,而不是直接从服务器获取。为了解决跨域问题,这些平台的供应商会放宽运行桌面小工具的嵌入式浏览器的同源策略,一般情况下可以直接请求所需的任何内容,但在某些情况下,可能需要提前通知 API。
2. 缓存问题
缓存是开发人员在处理任何 Web 内容时需要注意的另一个问题。浏览器通常会从网络拓扑中较近的缓存中获取内容,而不是总是从原始源检索,这样可以节省带宽和下载时间。缓存可能存在于浏览器本身、平台供应商提供的缓存中,或者在用户的 ISP 或第三方内容分发网络(CDN)等中间服务器上。
对于开发人员来说,缓存是一把双刃剑。一方面,从缓存提供内容(尤其是本地浏览器中的缓存)可以显著提高性能。API 提供的缓存也是小工具可扩展性的关键因素,像 iGoogl
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



