想做前后端分离,不知道这样做可行不?

2014-12-10 17:45:21 +08:00
 johnsneakers
1.我前端页面(.html)全部放在CDN,用户访问我的网址 http://www.xx.com/index.html 其实是拉的CDN资源。
2.前端再去请求我自己的服务器提供的api接口。

我的问题就在1上。
2430 次点击
所在节点    问与答
13 条回复
raincious
2014-12-10 17:47:18 +08:00
感觉这不就是AngularJS数据绑定的做法?前端下载之后运行,然后请求后端的数据来自己填充页面。
johnsneakers
2014-12-10 17:49:37 +08:00
@raincious 对的, 我前端就是angular, 我的问题是 :访问我的域名,但是HTML资源拉的是CDN的,不知道这个可以做到不
raincious
2014-12-10 18:02:39 +08:00
@johnsneakers

当然可以。这只是取决于你把资源放在什么地方。

另外只要确定下后端数据服务器请求的Allow-Control-Allow-Origin之类设定正确就好了。

但,如果这样的话,后端没办法直接给用户浏览的第一个页面提供数据,一些数据就无法预加载了(和预缓存在模板里了),可能仍然需要一个请求去获取。比如站点的名称之类常用数据,用户登录信息什么的。
tmkook
2014-12-10 18:04:32 +08:00
拉CDN时建立的HTTP请求会很耗时吧,然后不考虑搜索引擎?
crs0910
2014-12-10 19:43:39 +08:00
@tmkook 为什么拉CDN建立的HTTP请求会很耗时?不都是静态资源吗?CDN不是会比你自己服务器返回静态页快吗?
watsy0007
2014-12-10 20:08:00 +08:00
可以的。
yakczh
2014-12-10 20:29:19 +08:00
这有什么好处呢?
lincanbin
2014-12-10 20:30:57 +08:00
seo不管了?
kmvan
2014-12-10 20:31:04 +08:00
完全不考虑seo?
wadezhao
2014-12-10 21:27:42 +08:00
@johnsneakers 我的网站就是这么做的,你可以看看http://zuiyh.com/,是否和你想象的一样?

我的服务器在国外,没办法备案,速度也很慢,现在用的是couldflare做CDN。

SEO确实有问题,但我只有首页、web版、收藏这三个页面用了这种方法,其中首页用只是在用户登录的部分这样做的,而另外两页我本来也不想做SEO,所以正好。
johnsneakers
2014-12-10 22:10:30 +08:00
@lincanbin
@kmvan
phantomjs 貌似可以解决seo问题, 而且谷歌也有对ajax的解决方案, 百度就不知道了 不过没关系
johnsneakers
2014-12-10 22:11:29 +08:00
@wadezhao 具体是咋弄的呢,比如我静态html放在 qiniu 的CDN上面的, 但是用户访问的是www.xx.com/index.html
wadezhao
2014-12-10 22:36:50 +08:00
@johnsneakers 嗯……我没太明白,七牛提供这种服务么?

我说的CDN,是通过将CNAME域名解析到CDN的Server或者干脆把DNS指向CDN的Server,然后让CDN缓存你的静态资源。
这种情况下,用户访问你的www.xx.com/index.html,访问的就是CDN上的缓存文件,这和你说的前后端分离,好像没什么关系?

至于说怎么实现,很简单啊,html属于静态资源,被CDN缓存了,用户访问很快,html里链接或者内嵌了javascript,再通过ajax去不被缓存的自己的服务器上拉取动态的数据,填写到页面DOM中。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/152932

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX