SPA附加页面

时间:2014-11-18 03:24:53

标签: durandal

我正在使用Durandal创建一个SPA应用程序,我希望包含一个信用卡支付工具。我正在看的那些人要求你给成功的回复网址,取消和查看其他页面,这可能吗?

对我而言,这将打破单页' SPA的一部分,但有可能吗?我可以在一个窗口中完成所有操作吗?

3 个答案:

答案 0 :(得分:1)

免责声明:我不了解Durandal,但您可以使用&#34; hashbang URI&#34;来解决这个问题。或实际为您的网络服务器中的SPA重新提供请求的返回URI并使用与hangbash URI相同的技术调整内容,但使用history.pushstate / history.popstate代替,请参阅此处:https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history < / p>

此处提供了一篇来自Google的更一般性文章,该文章涵盖了相同的原则:https://developers.google.com/webmasters/ajax-crawling/

这&#34;工作&#34;因为SPA只是SPA,因为浏览器从服务器请求一次新的HTML文档(或者在你的情况下,两次),SPA应该在用户导航应用程序时更新UA的历史和地址栏状态,就像它是一个常规的多页面应用程序一样。

这方面的一个很好的例子是GitHub的源导航器:在这里尝试(https://github.com/angular/angular.js)并导航存储库,观察文件列表的内容是否与地址栏一样改变,但是你的浏览器不会重新加载整个页面......但如果您将(修改的)地址栏地址复制+粘贴到新的浏览器窗口中,您将获得相同的页面。

答案 1 :(得分:0)

我考虑从SPA进行信用卡处理,我找到的最佳选择是Stripe。他们提供的javascript文件看起来像是可以工作的,由于时间的限制,我从未在我的项目上实现它,所以我无法确认它是否有效,但看起来非常有前途。

答案 2 :(得分:0)

IFRAME对于这类事情非常有用。您可以使用jQuery将事件处理程序挂钩到页面加载事件,这将告诉您另一端何时响应。将第三方页面加载到IFRAME中,并为您提供给服务提供商的URL提供响应页面。如其他人所述,您可以使用路由来标识响应页面。 IFRAME将停止往返应用程序状态,实际上可以将脚本放在您的响应页面中,以便在DOM上和应用程序中点亮它。