Vue 和 React 都是趋向于把问题复杂化, 我个人是非常讨厌在 rails 项目中见到他们的影子。
hotwire 才是那个不需要你去担心“这个交互是放在服务端还是客户端”, 遵循的优先级很简单 turbo frame -> turbo stream -> javascript
这个解释到位,只有 turbo 实现不了的时候,才用 js
优先级是 turbo frame -> turbo stream -> javascript
DOM Merge 算法解决不了楼主的问题了,
虽然官方在推idiomorph
但是他大部分场景性能还不如 morphdom
替换一下 Turbo.PageRenderer
就行了
Turbo.PageRenderer.prototype.assignNewBody = function () {
if (document.body) {
morphdom(document.body, this.newElement, {
onBeforeElUpdated: (fromEl, toEl) => !fromEl.isEqualNode(toEl),
});
} else document.documentElement.appendChild(this.newElement);
};
想要优雅,你自己拓展 turbo action, 可以解决你跳转和 flash 的问题
turbo stream 可以访问你页面任何 DOM,
但是你只是单独的 turbo frame, flash 的结构要变,得跟着 frame 走,确实不够优雅
turbo stream 确实可以让你尽可能的不写 js, 但是会让你尽可能多的和服务端做交互,也就是你的 Req 会变多, 并且所有客户端逻辑都散落在你服务端的 turbo stream 的代码中,你要维护这些,以及耦合的 dom_id 所以你需要合理的遵循 rails 的方式来组织你的 view 虽然有这些缺点,但是我觉得体验还是挺好的,因为统一了客户端的行为
回归本质,我觉得挺好的
turbo 中 使用 data-turbo-submits-with 来代替原来 UJS 的 data-disable-with
不要老觉得别人的女朋友漂亮
基于 WebSockets 和 SSR 用 Rails 和 Hotwire 你不缺
Action Cable 和 morphdom 结合一下,简单又灵活的达到效果
刚特意搜了一下,果然是有大哥封装了这些常用的操作 turbo_power
React 怎么就简单粗暴了?不用服务端交换数据嘛?如果不用,hotwire 都没什么事,页面请求的时候都渲染出来了
你可以向下找实现
hotwired
你应该是混淆了 CurrentAttributes
和 Thread.current
尽量减少这样的操作,如果一定要这么做,那么你可以试试,这个保障线程被回收之前清理掉
around_filter :do_with_current_user
def do_with_current_user
Thread.current[:current_user] = self.current_user
begin
yield
ensure
Thread.current[:current_user] = nil
end
end
Rails 中的话,使用 ActiveSupport::CurrentAttributes是最简单省事的,贯穿你的请求和响应周期,会自动重置清理
呀,长沙得支持,但是这个招聘得做好持久战的准备
终于去掉了 TS
早两年的 EDM 项目都是用 Postal , 非常好用, 一旦使用的人需要具备一定的 EDM 基础, 稍微加工就能日发百万营销邮件 今时不同往日,现在营销邮件很能判,不建议大家尝试
长沙乡
成都基本工资介么低啊
看业务场景呢,我一个项目还 4W QPS 呢
但是还养不活 10 人的团队呢
还得想办法节约机器和流量成本
从 passenger 到 puma,然后换到了 nodejs
newrelic 只是有免费版本的软件,Elastic 家的开源噢
私有化部署也简单: https://www.elastic.co/downloads/apm
具体没有总结,在实际使用的过程中 bucket 的操作好像是不行的。
年前使用了最新的版本,是没有问题的。
现在对象存储厂商 API 都会兼容 S3,所以放心使用吧。
@zlx_star 去看看 AWS 的 API,云行业应该都是以 AWS 为标准了。
就算是所谓的决策者的选择,也会是有依据的。
腾讯并不是独裁,很多技术细节的决定,内部都会有很多挑战,不是想怎样就能怎样。
虽然现在确实还有很多问题
替换掉原有的 MD 编辑器,还是非常麻烦的,stackedit 是一个独立的 web app,替换 homeland 富文本编辑器,可能流程都会要改变
嵌入你得用这个 https://github.com/benweet/stackedit.js
继续追问:homeland 每次修改或者打开上次的页面以后要刷新才能渲染数学公式,这个在哪里改?
你要把渲染公式的 js 库加入才行。
qcloud cos 是兼容 s3 的,所以可以直接用 aws-s3 来使用,不过有几个小坑
不建议直接更改 /etc/nginx/passenger.conf 中的配置 在 nginx 中指定
passenger_ruby /home/deploy/.rvm/gems/ruby-2.5.1/wrappers/ruby;
form_core 很赞!
坚决不要用这类二道贩子的 CDN
大表哥原来也在用 ruby
长沙很难找,自己培养吧
长沙 Ruby 非常少
试试运气