有没有全站都使用Angular.js或者Vue.js或者是React.js的?想利用SPA和后端PHP来完成项目,不知道可行性如何?如果采用SPA,怎样处理一些数据交互的,是用ajax还是通过调用无状态的api来交互数据,怎样处理cookies和session的问题。
试着说说我的想法:
无状态的 API 是指不验证用户身份吗?如果是这样理解的话,不敏感的信息(比如相对固定的大型关联下拉列表)可以用无状态的 API。
SPA 前端应该是不需要直接使用 cookie 的(参考下一条),session 让后端的 PHP 去处理,包含必要信息的 cookie 在每个 xhr 请求都会提交给后端。
PHP 端和传统开发没太大区别,应该说更简单了,不再需要考虑渲染的问题,基本上每个请求都是以输出一个 JSON 来结束的。
前端如果需要保存一些信息供下次打开页面使用,可以使用 localStorage。
对于大型 SPA 前端的 router 应该算是挺重要,需要认真谨慎对待的一个环节吧。因为用户可能收藏一个不是初始的 URL 下次直接进入。
如果需要兼顾低配的设备(如小内存的安卓手机或 10 年前的仍在且仅能勉强运行 XP 的 PC),可能不是太合适。但是 SPA 应用常常面向的用户整体较为前卫一些,或许不会面临这种问题。
全站SPA自己写小项目的时候做过, 使用的是reactjs, 和后台交互采用superagent, 其实也就是ajax, 身份验证当时查了很多资料, 最后是在登陆后在后台保存一个身份, 返回token, 并本地保存, 以后每次请求带上token并验证, 然后返回新的token, 这样做其实是有很大的问题, 但是其他的方式多多少少也有问题, 不过既然打算上restful的话, 个人认为直接上HTTPS是最方便的。
顺便贴一个关于restful下身份验证的讨论, 可以参考一下
http://stackoverflow.com/ques...
话说个人觉得SPA并不意味着要完完全全的实现无状态..(我好像跑题了)