V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
johnsneakers
V2EX  ›  问与答

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

  •  
  •   johnsneakers · 2014-12-10 17:45:21 +08:00 · 2336 次点击
    这是一个创建于 3429 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1.我前端页面(.html)全部放在CDN,用户访问我的网址 http://www.xx.com/index.html 其实是拉的CDN资源。
    2.前端再去请求我自己的服务器提供的api接口。

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

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

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

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

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

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

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

    至于说怎么实现,很简单啊,html属于静态资源,被CDN缓存了,用户访问很快,html里链接或者内嵌了javascript,再通过ajax去不被缓存的自己的服务器上拉取动态的数据,填写到页面DOM中。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2500 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 15:01 · PVG 23:01 · LAX 08:01 · JFK 11:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.