Ruby China
  • 社区
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • 注册
  • 登录
Rei
@Rei
管理员
第 1 位会员 / 2011-10-28

[email protected]
深圳
182 篇帖子 / 9132 条回帖
727 关注者
0 正在关注
11 收藏
中下水平 Rails 程序员
打赏作者
GitHub Public Repos
  • writings 940

    [Closed] Source code of writings.io

  • alipay 732

    Unofficial alipay ruby gem

  • code_campo 291

    [Closed] Source code of http://codecampo.com

  • asciidoctor-pdf-cjk-ka... 101

    **no longer maintained**

  • asciidoctor-htmlbook 31

    Asciidoctor HTMLBook is an Asciidoctor backend for converting AsciiDoc documents to HTMLBook docu...

  • material-ui 17

  • rich-text-editor 12

  • htmlrenderer 12

  • rails-chatgpt-demo 8

  • rails-app 7

    A Rails project template lets me start new projects quickly.

More on GitHub
  • 概况
  • 话题
  • 回帖
  • 收藏
  • 正在关注
  • 关注者
  • 心痒痒也做了一个 React+Redux 的 Ruby China 山寨版 at 2017年01月28日

    多谢楼主的工作,我终于可以拿两个几乎一样的页面比较 Turbolinks 和前端渲染的速度。

    首屏速度(主题列表)

    Turbolinks

    React

    分析

    减去空白时间,Turbolinks 耗时 281ms,React 耗时 474ms,Turbolinks 是 React 的 59%,前者大幅领先。

    换页速度(从主题列表进入主题页)

    Turbolinks

    React

    分析

    减去空白时间,Turbolinks 耗时 219ms,React 耗时 251ms,Turbolinks 是 React 的 87%,前者小幅领先。

    总结

    渲染同样的页面,Turbolinks 总是比 React 实现的快。数据不说谎,认为客户端渲染比较快的,要不是错觉,要不是只关注服务端耗时忽略总体耗时。要注意的是,这次评比 React 实现是访问 Ruby China 的 API,服务端响应更快数据量更小,但内容展现到用户面前的时间,还是服务端渲染耗时更少。

    事实上,这也不是完全对等的对比,我相信还有很多功能 React 版本是没实现的,我特意用未登录状态测试,避免受影响。同为 js 打包成一个包,Turbolinks 执行 js 的时间更少,秘诀是把 AJAX 响应逻辑隐藏在服务端,只有调用的时候才需要浏览器解析;客户端渲染则在初始化时就解析了这些逻辑,因而花在 js 的时间更多。功能越多,客户端方案会越重。

    除了速度外客户端渲染还有一个问题,就是内容闪烁。从主题列表进入主题页的时候,虽然页面框架保留,但是需要等待 api 数据,造成一小段时间内内容部分空白,给用户的感受就是内容闪烁。当然,可以用一些动画效果优化更新方式,不过在网络本身足够快的时候显得有些多余。而 Turbolinks 则是整页替换,网络理想的情况下给用户的感觉是切换瞬间完成,体验更好。

    我理解为什么现在客户端渲染方案大行其道,根源还是前后端开发者间的语言差异。在传统 Web 开发中,前端是整体项目的附属品,前端的每次修改都需要服务端配合,服务端可能是 Java,.net,PHP 模版,框架也缺乏对前端代码管理的支持,前端改起来很吃力,于是 JavaScript 前端琢磨出了不需要服务端配合的纯 JavaScript 前端方案。在大公司环境下,分工不同、各司其职的思想下,前后端分离很合适部门划分。很多时候架构设计不是出于技术考虑,而是在适应人员结构。

    但是 Rails 提倡的是另一种思路,Rails 项目是高内聚的,各个开发者之间没有明确的界限,前端应该了解后端,后端也应该了解前端,重视整合系统,这样可以从项目整体作出最优判断。Rails 项目和别的项目集成又可以实现低耦合,通过 api 和消息队列和别的项目进行通信,别的项目用 Rails、PHP、Node.js 都不成问题。

    最后,我希望 Rails 开发者不要放弃钻研前端,把 Web 项目甜美的部分拱手让出,Rails 本身已经不仅是 Ruby 框架,也依赖 Node.js。对于 Web 项目来说,能到达用户为人所用,解决用户的问题,提供好的体验才是一个好的项目。另外也希望参与 Rails 项目的 JavaScript 前端多了解 Rails,Rails 对前端提供了良好支持——虽然跟 JavaScript 的主流不太一样。但顶尖的 JavaScript 程序员也在向 Ruby 社区取经,举个最近的例子,Facebook 的 Yarn 就是借鉴 Ruby 的 Bundler。了解 Rails 会让你成为更好的前端。

    PS:上面的文字并不是针对楼主,楼主做的工作是有意义的,继续加油!

  • 心痒痒也做了一个 React+Redux 的 Ruby China 山寨版 at 2017年01月27日

    PS:有点难

  • PDF::Writer 怎么支持日语?好像支持英语。 at 2017年01月24日

    我猜需要先安装字体到这些目录 https://github.com/metaskills/pdf-writer/blob/7f5bc6c9ce69c26574bbfde36ebdb9ecf06709d0/lib/pdf/writer.rb#L111

  • PDF::Writer 怎么支持日语?好像支持英语。 at 2017年01月24日

    指定日文字体,我在这个库的源码里看到有 demo。

  • 请教大家 app 接口需要防护 csrf 吗? at 2017年01月23日

    #21 楼 @sefier 楼主问 csrf,那么 web app 和 mobile app 都有可能啊,所以我问楼主有没有用 cookie 验证,因为 web app 可用也不用 cookie。是你先入为主。


    补充:Ruby China 的安卓 APP 基于 turbolinks 实现,其实是 webview,需要防 csrf。

  • 请教大家 app 接口需要防护 csrf 吗? at 2017年01月23日

    #19 楼 @sefier https://en.m.wikipedia.org/wiki/App

    App, apps or APP may refer to:

    • Mobile app, software designed to run on smartphones and other mobile devices
    • Application software that causes a computer to perform tasks for computer users
    • Web application or web app, software designed to run inside a web browser
  • 请教大家 app 接口需要防护 csrf 吗? at 2017年01月23日

    #16 楼 @sefier 技术讨论干嘛搞得像批斗会一样,最后一段话对解决问题没有帮助,提问者不就是因为不懂所以提问。如果你知道问题所在,可以提供参考资料。

    现在前后端分离这么流行,也许楼主说的 APP 就是网页前端,放在同一域名,通过 cookie 验证,这样就需要防 csrf。

  • 点击返回显示 ajax 更改后的内容 at 2017年01月23日

    #2 楼 @timlen 你不能只是把 Turbolinks 加上,还要看它的文档,不然就会遇到各种问题。

  • Rails 权限问题,devise-cancan-rolify 如何做成 RBAC 那样的? at 2017年01月23日

    我觉得电商网站挺有必要实现这套,随时会新增运营人员但限定不同权限。

    核心需求我通常会自己实现。

  • 点击返回显示 ajax 更改后的内容 at 2017年01月22日

    Ajax 操作之后用 history.replaceState 更新历史记录。 RubyChina 用 Turbolinks 已经自动处理了。

  • 找工作 at 2017年01月21日

    https://ruby-china.org/topics/31858


    哦,发现楼主已经回帖了。

  • 多应用统一账户密码登录怎么做? at 2017年01月19日

    我还不是很清楚你的场景,多个应用是多个网站还是多个移动应用,以后会不会扩展?需要多站点免登陆还是相同账号密码登陆还是授权验证?

    多系统共用的账号系统要优先选用通用的协议,不要从零开始。

  • 多应用统一账户密码登录怎么做? at 2017年01月19日

    #8 楼 @pengedy 什么叫政治正确?看了你几个帖子都在胡说八道。

    SSO:用户一次登陆后在多个系统免登录。
    OAuth:用户授权第三方应用访问自己的资源无需提供账号密码。

    场景不同选择不同。

  • 请教大家 app 接口需要防护 csrf 吗? at 2017年01月18日

    #7 楼 @xiaobai2 access_token 放参数或者头部

  • 请教大家 app 接口需要防护 csrf 吗? at 2017年01月18日

    #3 楼 @ghn645568344 给个攻击例子?不明白被抓取是什么意思。

  • 每次打开终端,当前使用的 ruby 版本会变回系统版本,设置了 default 好像也没什么作用,如何解决? at 2017年01月18日

    rvm use --default 2.2.0

  • 请教大家 app 接口需要防护 csrf 吗? at 2017年01月18日

    CSRF 利用的 cookies 验证进行未授权访问,不用 cookies 作为验证就没问题(大概)

  • Rails 最佳实践 - 定时任务 at 2017年01月18日

    我还是相信 crontab

  • 为什么加入一家初创企业? at 2017年01月17日

    创业公司也有很多类型,不同规模。

  • 升级到 2.4.0 后收到的一些 warning at 2017年01月16日

  • 关于 rails mina 的启动 at 2017年01月16日

    #2 楼 @pcpcpc 手机回复,不方便贴代码。你可以找 foreman 这个 gem,可以根据一行配置导出各种系统进程管理配置。

    专机专用并且是秘钥登录的话,我觉得可以设 sudo 免密,用户被攻破了的话本身也没有安全性了。

  • 关于 rails mina 的启动 at 2017年01月16日

    我之前是写 upstart 脚本管理进程,部署脚本执行 upstart 命令。现在应该用 systemd。

  • Dokku - 自己部署一套类似 Heroku 的 PaaS 平台 at 2017年01月16日

    Heroku 好用还在于扩容无需管理,自己搭又变成自己管了。

  • Rails 组合索引,看书上来的,为什么会有错误? at 2017年01月14日

    add_index 写到 def change ; end 里面。

  • 想问一下,前端测试有什么自动化方法 / 框架? at 2017年01月13日

    你听说过 Google 吗?

  • 做了一个开源项目库聚合的产品 at 2017年01月13日

    #4 楼 @daqing 用作简历找一份好工作,迎娶白富美,出任 CTO,走向人生巅峰。

  • 用 Rails 写的签证管理平台大作业 at 2017年01月10日

    如果不知道怎么选择,就选 Rails 默认的。

  • 巴爷供销社,一个生产级别的微信小应用商城开源实现 at 2017年01月10日

    #13 楼 @ericguo 我是不敢随意扫码的。

  • Blog 保存文章,内容会自动加上空格的问题 at 2017年01月10日

    是模版输出的问题,用的什么模版?

  • 上一页
  • 1
  • 2
  • …
  • 53
  • 54
  • 55
  • 56
  • 57
  • …
  • 272
  • 273
  • 下一页
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English