Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

第八周 2017-09-09 #9

Open
Shie0906 opened this issue Sep 9, 2017 · 3 comments
Open

第八周 2017-09-09 #9

Shie0906 opened this issue Sep 9, 2017 · 3 comments

Comments

@Shie0906
Copy link

Shie0906 commented Sep 9, 2017

@sunhengzhe
Copy link
Member

@Shie0906 哇,欢迎欢迎

@sunhengzhe
Copy link
Member

sunhengzhe commented Sep 10, 2017

  • 如何制作离线友好的表单?
    用户提交表单的时候断网了怎么办?文章提供的思路很简单,将用户填写的信息存入到 localStorage 里,等网络好的时候再取出来重新提交。
    但实现上涉及到几个核心但不常用的技巧:
    • 使用 navigator.onLine 判断是否联网
    • 监听 window 的 online 和 offline 事件
  • 使用 vh 和 vw 实现真正的流式文字排版
    根据屏幕大小不同选择不同的文字大小,这应该算是移动开发里面一个基础技巧,主要还是使用 calc、vw、em 来实现,这里介绍了一个计算公式:calc(16px + (24 - 16) * (100vw - 400px) / (800 - 400))。其实就是以屏幕大小为 400 时字体大小 16px,屏幕为 800 时字体大小 24 为基准构造了一个线性方程。
    我的感想是这种技巧主要还是关注的是可读性,在我们日常使用中可能就是针对几种屏幕设置一个特定的字体大小了,但是严格的公司和产品应该会对这方面有一些规范,可以先直观地感受一下这种流式文字排版,了解一下使用方式。
    还有需要关注的是作者测试了 calc() 和视口单位在高级浏览器上都能正常工作。但是在低于 Safari8 和 IE11 的版本里,当 calc() 表达式中使用了视口单位时,浏览器窗口改变时不会重新计算结果。这个可以记一下。
  • Debugging Node.js with Google Chrome
    调试技巧还是要在不断地实践中进行总结,调试的方法很多,但是我们需要的是那些好用的,适合我们工作的。
    nodejs 的调试最基础的应该是 inspect 参数,这篇文章介绍了 inspect 参数的使用方法,其实就是在启动服务的时候添加一个参数:node --inspect <your_file>.js
    使用 inspect 的好处在于可以结合熟悉的 chrome 浏览器 devTool 进行调试,同时来 debug 浏览器端的 js 和 node 端的 js。关于 inspect 更多的介绍可以参考 官方文档
  • JavaScript 专题之函数记忆
    函数记忆本身原理不难理解,其实就是维护一个哈希表,比较需要注意的可能就是 key 的设定,一般而言还是把函数名和参数进行哈希运算。
    在使用场景下,我首先想到的是动态规划,非常推荐 什么是动态规划? 这篇漫画,使用缓存可以一定程度上优化一些重复计算次数过多的场景。

@sunhengzhe
Copy link
Member

sunhengzhe commented Sep 10, 2017

看到一个精度 XX 文章系列:精读AsyncAwait优越之处
找过去发现他们也是在 github 上讨论的,每周会有一篇精读的文章,可以读一下,另外看下他们历史的讨论(讨论完就把 issue 关了):dt-fe/weekly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants