#DontKnow #推测性 #web 关于两个常见交互/功能设计!二维码登录和「划屏手势同时使用 pager 和 paged banner」
一般而言,网站使用 cookie (本意是临时的标识符)获取用户的登录身份。不同设备有不同网络地址,最好不要复用 cookie ,服务端一般要写专门的逻辑支持「手机扫码登录」。
但是,所需最小的信息交换和直接共享登录 cookie(token) 的方法是一致的。网页端显示的二维码蕴含已登录客户端和自己都明白的一个「读写位置」,它能写的数据可能是固定的,比如由已登录客户端请求服务端写入新 cookie ;但本质仍是通过「二客户端都知晓的读写位置」来实现,只是掩盖了直接读写的操作且支持了事件
为了监听到登录事件,往往选择暴露 WebSocket 接口
== 很多时候 DOM 树上接受某事件的元素不止一个。 举个(不同平台的)例子, Android 上一些 ViewPager 里可能有横向滚动条,为什么只有滑动到滚动条末端 pager 才会翻页?
从嵌套序来看是 pager 包含了(其子项) ScrollView ,但对于用户的输入 event ,传播责任链是深者优先——直接目标 Scroll 会处理这个交互。
如果滚动条已到最左而仍收到 swipe 手势,它就不能截获(intercept)此事件仅由自己处理,故此其父项 pager 就有机会往左翻一页;反之,如果它明白事件的涵义是滚动自身,则可以消耗它而不影响父视图。
一般而言,网站使用 cookie (本意是临时的标识符)获取用户的登录身份。不同设备有不同网络地址,最好不要复用 cookie ,服务端一般要写专门的逻辑支持「手机扫码登录」。
但是,所需最小的信息交换和直接共享登录 cookie(token) 的方法是一致的。网页端显示的二维码蕴含已登录客户端和自己都明白的一个「读写位置」,它能写的数据可能是固定的,比如由已登录客户端请求服务端写入新 cookie ;但本质仍是通过「二客户端都知晓的读写位置」来实现,只是掩盖了直接读写的操作且支持了事件
为了监听到登录事件,往往选择暴露 WebSocket 接口
== 很多时候 DOM 树上接受某事件的元素不止一个。 举个(不同平台的)例子, Android 上一些 ViewPager 里可能有横向滚动条,为什么只有滑动到滚动条末端 pager 才会翻页?
从嵌套序来看是 pager 包含了(其子项) ScrollView ,但对于用户的输入 event ,传播责任链是深者优先——直接目标 Scroll 会处理这个交互。
如果滚动条已到最左而仍收到 swipe 手势,它就不能截获(intercept)此事件仅由自己处理,故此其父项 pager 就有机会往左翻一页;反之,如果它明白事件的涵义是滚动自身,则可以消耗它而不影响父视图。
duangsuse::Echo
这种图应该怎么做啊…… (我好像又说了一遍
第一遍是写函数图渲染的时候,我说可以支持 script 公式项和 T 变量,这些字符都单独 measure+sum width & fillText 然后给 x,y 加随机量(呃好像不要 T 变量了,但公式含随机量的动画性要检测)
现在我考虑下有两种方案:
1. 每行去 canvas 堆叠 width 获取 x,y,text 表,交给一个 op 每帧预处理
2. 切分成许多 span ,生成抖动 CSS 动画 keyframes 。纯静态不知道位置可以用 transform ,JS 生成可以直接设置 left, top
等着我的好消息🤔 https://t.me/dsuse/16701
现在我考虑下有两种方案:
1. 每行去 canvas 堆叠 width 获取 x,y,text 表,交给一个 op 每帧预处理
2. 切分成许多 span ,生成抖动 CSS 动画 keyframes 。纯静态不知道位置可以用 transform ,JS 生成可以直接设置 left, top
等着我的好消息🤔 https://t.me/dsuse/16701
Telegram
duangsuse::Echo
#endFork 唉。 本来可以多拿点 gif 的,想想算了,爱看自己做吧
#Python #code #轻松一刻
https://t.me/dsuset/9804
from sys import stdin
fmt="__%s__"
def mapMod2(n, xs, op): return ((op(x) if i%2==n else x) for i,x in enumerate(xs))
print("\n".join(mapMod2(0, stdin, lambda ln: fmt%ln[:-1]))) https://t.me/dsuset/9804
Telegram
duangsuse Throws
#日常精神分裂 交友篇 一句一人。我先
医生,这两天放假我有一个问题比较困扰,我感 到很孤独,而且有一个人我想交朋友,但现在明 白大概不可能。
你不是有电脑可以玩吗?为什么会感到无聊?
这个,最近皮肤在恢复我就特意空出时间不去碰 电脑了,显然暴露出了一些问题……
你现在的社交是什么情况?
大专寝室共6人,因为室友更多时间在打王者所以关系没有特别好的,也就 2眼熟+2友好相处,别 的寝室有2个,还有算好友(不是很热衷但同道的 人)的一个;之前因为一个半点名的批评(其实我 本无意说教任何人,我比渣多了)…
医生,这两天放假我有一个问题比较困扰,我感 到很孤独,而且有一个人我想交朋友,但现在明 白大概不可能。
你不是有电脑可以玩吗?为什么会感到无聊?
这个,最近皮肤在恢复我就特意空出时间不去碰 电脑了,显然暴露出了一些问题……
你现在的社交是什么情况?
大专寝室共6人,因为室友更多时间在打王者所以关系没有特别好的,也就 2眼熟+2友好相处,别 的寝室有2个,还有算好友(不是很热衷但同道的 人)的一个;之前因为一个半点名的批评(其实我 本无意说教任何人,我比渣多了)…
duangsuse::Echo
https://t.me/Javaer/561972 #china #life
https://t.me/LetITFlyW/9390 #ali 最近扣光余额的有点多啊,什么原理🌚 付0.01元就能扣光余额?自动发口令红包?
Telegram
LetITFly News
https://t.me/TGgeek/806
https://t.me/airkoryochannel/1377
近期出现了两类针对翻墙用户和 Telegram 用户的电信诈骗,各位格外小心呀。
也许你会说,“这太假了,有人信吗”。骗子们能骗到一个是一个,不要高估坏人的下限。
来源一:假冒 Telegram 官方的 spambot(查询账号是否被限制 / 解封时间,以及申诉等),诱骗绑定它提供的美国手机号,并且它不会把手机号的所有权转让给你
来源二:假冒中国大陆的三大运营商、工信部、网信办,或国家安全部门…
https://t.me/airkoryochannel/1377
近期出现了两类针对翻墙用户和 Telegram 用户的电信诈骗,各位格外小心呀。
也许你会说,“这太假了,有人信吗”。骗子们能骗到一个是一个,不要高估坏人的下限。
来源一:假冒 Telegram 官方的 spambot(查询账号是否被限制 / 解封时间,以及申诉等),诱骗绑定它提供的美国手机号,并且它不会把手机号的所有权转让给你
来源二:假冒中国大陆的三大运营商、工信部、网信办,或国家安全部门…
噢, Reactive 就是 c=a+b 自动更新 c 呀,我之前想了几次呢。 一般不用 onresize 之类的事件很麻烦呢 #Web #DontKnow #JS #lib
而且还能做到数据变动视图自动更新,耳不仅是单向的视图更改数据,有点意思。 #functional #ce
然后对于控件的 computed() 用了特殊语法 $: a+b (label statement) 表示,应该说也是很实践性
“ 在「古典」React 里,你不得不写 shouldComponentUpdate, 在现代 React, 你同样需要引入 useCallback 和 useMemo,手动地缓存函数,来避免性能问题。
同样是使用 Virtual DOM 的 Vue 却没有这个问题,因为 Vue 的机制(依赖收集)决定了它不必重新执行整个 UI 函数来换取新的 Virutal DOM 树,当某个状态更新的时候,它明确地知道应该 diff 哪些节点。
这么看 React 真是傻逼,不过是提供了无作用域的 state ,竟然要重渲染整体 UI?难道不能收集出有哪些变量节点用了被更新变量么,这不是基础操作?
而且还能做到数据变动视图自动更新,耳不仅是单向的视图更改数据,有点意思。 #functional #ce
然后对于控件的 computed() 用了特殊语法 $: a+b (label statement) 表示,应该说也是很实践性
“ 在「古典」React 里,你不得不写 shouldComponentUpdate, 在现代 React, 你同样需要引入 useCallback 和 useMemo,手动地缓存函数,来避免性能问题。
同样是使用 Virtual DOM 的 Vue 却没有这个问题,因为 Vue 的机制(依赖收集)决定了它不必重新执行整个 UI 函数来换取新的 Virutal DOM 树,当某个状态更新的时候,它明确地知道应该 diff 哪些节点。
这么看 React 真是傻逼,不过是提供了无作用域的 state ,竟然要重渲染整体 UI?难道不能收集出有哪些变量节点用了被更新变量么,这不是基础操作?
看看就好的频道
Message
#recommend 从裸 DOM 到 JQ 到现在的 Vue, React, Angular 框架, TypeScript ,经历了很多变化甚至思维模式转变,但都是为了能处理大型视图项目。
当然,动苏所习惯的
俺并没有特别做什么设计就选择了这种写法🌝 对我而言,怎么拼合程序与数据、解决模板代码都惯的来。
通过编译期处理实现 c=a+b 的自动关系式更新可以选择 defineProperty setter ,但其实预处理才是最高性能不拖泥带水的做法,这种代码我之前写过三回
https://github.com/duangsuse-valid-projects/Share/blob/master/HTMLs/qndxx.ts#L13
https://github.com/duangsuse-valid-projects/Share/blob/master/HTMLs/xy/xy.ts#L74
https://github.com/duangsuse-valid-projects/Share/blob/master/HTMLs/dim2/dim2.ts#L45
当然,动苏所习惯的
el("tag", withClass(""), []) DSL式语法就照应了树本身的结构,可以弄运行一次代码生成和进一步糖化。俺并没有特别做什么设计就选择了这种写法🌝 对我而言,怎么拼合程序与数据、解决模板代码都惯的来。
通过编译期处理实现 c=a+b 的自动关系式更新可以选择 defineProperty setter ,但其实预处理才是最高性能不拖泥带水的做法,这种代码我之前写过三回
https://github.com/duangsuse-valid-projects/Share/blob/master/HTMLs/qndxx.ts#L13
https://github.com/duangsuse-valid-projects/Share/blob/master/HTMLs/xy/xy.ts#L74
https://github.com/duangsuse-valid-projects/Share/blob/master/HTMLs/dim2/dim2.ts#L45
GitHub
duangsuse-valid-projects/Share
🐕 duangsuse's shared files(e.g. productive software projects, documents) - duangsuse-valid-projects/Share
#statement #functional #js #GUI #dom
再说 Reactive... 等等这不是 Rx 类框架的招牌吗٩(๑`н´๑)۶ 看来 -ive 的词性都容易后宫起火啊草。
React 用 functional MEMO 提升控件更新性能根本就是弱智措施, memo 即备忘录,用 hash 表实现函数输入输出对应的缓存,这样对类似 Text 的控件,同输入多次调用不产生额外计算和内存开销,应用在树 render() 上时相当于自动实现 shouldComponentUpdate() ,尽量复用旧的渲染结果,对树遍历减少重建操作量,相当于仅重建了真正变更的控件。
经典版暴露 shouldUpdate 已经很没水平了,说好的面向 state 编程呢?在我看来这个 Reactive 所做的就是「把所有控件的所有变量暴露到一个 state 里方便读写操作」,那么凭什么程序员要操心什么 update 啊 memo 啊,记得很像 还有 SMUV(state,message,update-event,view)模型,实际上根本不能便利地 handle 多少东西,就是个秀儿。
当然,其实真正的 relational 编程也是这样,关系式 state/var/eq/both/either 靠 enumerate&filter 可以解出 x+1=2 这样的线性方程,甚至能得出 a+b=9 的所有可能性,只是需要 interleave([a,b]) 两个变量先后递增构造 state 迭代,然后 unify 一下同步恒等关系(双向版变量引用)而已
可是这和 DOM 有多大关系?比如我有个
其实渲染 Main 的时候连给子控件注入其路径都不需要!也不需要专门分析 DOM diff 的哪个 tag 哪个 attr 还是 text ,直接拿住自己的 HTMLElement 的引用就够完成全部 update 了,所以说搞那么复杂?
要是想兼容 haml 或者 E4X 内联 XML ,直接做个中部翻译成 el 调用就行,反正 DOM 元素动态创建最好是 createElement ,逃不开运行时开销。
想实现控件属性事件到 update 代码的方法很简单,因为 js ref(a.prop) 并不会传入 a 相关的信息,编译期把 op(ref(a.prop)) 变成 refAddRel(a,"prop",v=>op(v)) 就可以了,这种方法换成处理全部代码,引用处 a.prop=x 自动更新就变成上面那个 框架S 的实现方法,接口上是兼容的,只不过 refAddRel(o,k,op) 从 defineProperty 变成编译期打监听表。
变形方法很简单,walk 到 FCall 节点记作基点,如果是 op(ref(o.prop)) 就把基点变成 refAddRel 的调用,如果是 ref(v) 这种不知道 receiver 的情况就请换 Array [v] 报错,反正框架函数可以随便加没必要特别支持 a=ref() 这些语法,兼容的少,反而更优雅。
再说 Reactive... 等等这不是 Rx 类框架的招牌吗٩(๑`н´๑)۶ 看来 -ive 的词性都容易后宫起火啊草。
React 用 functional MEMO 提升控件更新性能根本就是弱智措施, memo 即备忘录,用 hash 表实现函数输入输出对应的缓存,这样对类似 Text 的控件,同输入多次调用不产生额外计算和内存开销,应用在树 render() 上时相当于自动实现 shouldComponentUpdate() ,尽量复用旧的渲染结果,对树遍历减少重建操作量,相当于仅重建了真正变更的控件。
经典版暴露 shouldUpdate 已经很没水平了,说好的面向 state 编程呢?在我看来这个 Reactive 所做的就是「把所有控件的所有变量暴露到一个 state 里方便读写操作」,那么凭什么程序员要操心什么 update 啊 memo 啊,记得很像 还有 SMUV(state,message,update-event,view)模型,实际上根本不能便利地 handle 多少东西,就是个秀儿。
当然,其实真正的 relational 编程也是这样,关系式 state/var/eq/both/either 靠 enumerate&filter 可以解出 x+1=2 这样的线性方程,甚至能得出 a+b=9 的所有可能性,只是需要 interleave([a,b]) 两个变量先后递增构造 state 迭代,然后 unify 一下同步恒等关系(双向版变量引用)而已
可是这和 DOM 有多大关系?比如我有个
class Main: DUI() { fun view() = el("il", withNone, Counter(0)) }
class Counter(var n): DUI() {
fun view() = elDiv(withNone, elText(ref(this.n)))
fun inc() { n+=1 }
}其实渲染 Main 的时候连给子控件注入其路径都不需要!也不需要专门分析 DOM diff 的哪个 tag 哪个 attr 还是 text ,直接拿住自己的 HTMLElement 的引用就够完成全部 update 了,所以说搞那么复杂?
要是想兼容 haml 或者 E4X 内联 XML ,直接做个中部翻译成 el 调用就行,反正 DOM 元素动态创建最好是 createElement ,逃不开运行时开销。
想实现控件属性事件到 update 代码的方法很简单,因为 js ref(a.prop) 并不会传入 a 相关的信息,编译期把 op(ref(a.prop)) 变成 refAddRel(a,"prop",v=>op(v)) 就可以了,这种方法换成处理全部代码,引用处 a.prop=x 自动更新就变成上面那个 框架S 的实现方法,接口上是兼容的,只不过 refAddRel(o,k,op) 从 defineProperty 变成编译期打监听表。
变形方法很简单,walk 到 FCall 节点记作基点,如果是 op(ref(o.prop)) 就把基点变成 refAddRel 的调用,如果是 ref(v) 这种不知道 receiver 的情况就请换 Array [v] 报错,反正框架函数可以随便加没必要特别支持 a=ref() 这些语法,兼容的少,反而更优雅。
看看就好的频道
Message
另外这个博文作者的示例 https://github.com/djyde/plastic-editor
虽然有 reactive ,居然 responsive 都没做,就是笔记应用支持 star grouping&Date,上传照片和 JSON 导出…… 移动端尺寸设计很难吗
有意思的是这个人有开源 DFS longestRoute https://github.com/djyde/findRoad/blob/master/src/index.ts#L98 的代码,应该是很久以前的了 (他还有个 dom like .data tree-util 和 TS 测试的 pushIf ,只有一行代码,应该是算法弃了)
虽然有 reactive ,居然 responsive 都没做,就是笔记应用支持 star grouping&Date,上传照片和 JSON 导出…… 移动端尺寸设计很难吗
有意思的是这个人有开源 DFS longestRoute https://github.com/djyde/findRoad/blob/master/src/index.ts#L98 的代码,应该是很久以前的了 (他还有个 dom like .data tree-util 和 TS 测试的 pushIf ,只有一行代码,应该是算法弃了)
GitHub
GitHub - djyde/plastic-editor: A block-based editor
A block-based editor. Contribute to djyde/plastic-editor development by creating an account on GitHub.
duangsuse::Echo
第一遍是写函数图渲染的时候,我说可以支持 script 公式项和 T 变量,这些字符都单独 measure+sum width & fillText 然后给 x,y 加随机量(呃好像不要 T 变量了,但公式含随机量的动画性要检测) 现在我考虑下有两种方案: 1. 每行去 canvas 堆叠 width 获取 x,y,text 表,交给一个 op 每帧预处理 2. 切分成许多 span ,生成抖动 CSS 动画 keyframes 。纯静态不知道位置可以用 transform ,JS 生成可以直接设置 left…
#Web 草,又被骗了,花了四个小时…… 而且还遇到两个不知道为什么的问题(虽然有变通过测试了
https://64f1aq.coding-pages.com/HTMLs/school/shaking.html?0b101
叠字符xy的逻辑比我想的简单,最开始我觉得要像 Python itertools 一样 reduce 什么的,其实完全不需要 只用 array push&join 下
https://64f1aq.coding-pages.com/HTMLs/school/shaking.html?0b101
叠字符xy的逻辑比我想的简单,最开始我觉得要像 Python itertools 一样 reduce 什么的,其实完全不需要 只用 array push&join 下
Forwarded from Arctic Code Vault.zip (𝕽.𝕴.𝕻 #運ぶ運ぶ🎶)
Weixin Official Accounts Platform
中国社会为何多杠精
杠精重视的不是逻辑本身对错,而是人与人之间话语权力的对抗。
#project https://t.me/dsuse/16954
https://t.me/dsuse/16970 https://t.me/dsuse/16975 elm-lang.org
🤔咱先去写个关系式 state ,再去从 infsw 写起吧…… 不对,可以先去写个 line,insert,百叶窗的文本动画
https://t.me/dsuse/16970 https://t.me/dsuse/16975 elm-lang.org
🤔咱先去写个关系式 state ,再去从 infsw 写起吧…… 不对,可以先去写个 line,insert,百叶窗的文本动画
Telegram
duangsuse::Echo
#日常精神分裂 #DOM #game #js
A: 你看到了吗,那个从视口顶部丢球球下来,像俄罗斯方块一样的球碰撞游戏,是叫合成大西瓜来着
B: 那是个逻辑相当简单的游戏,也看见有三四个人做了翻版(奥利给等),如果按环节重复、更新规则、动画细节三项而言,细节不超过六个
A: 如果我们利用 canvas 做碰撞检测复刻一个,你觉得怎么样?整个绘制只有 Ball(p,r) 一种类型两个参数!简直和只有 fillRect 的贪吃蛇一样简单
B: 和 web asteroids 的 doc.elementFromPoint…
A: 你看到了吗,那个从视口顶部丢球球下来,像俄罗斯方块一样的球碰撞游戏,是叫合成大西瓜来着
B: 那是个逻辑相当简单的游戏,也看见有三四个人做了翻版(奥利给等),如果按环节重复、更新规则、动画细节三项而言,细节不超过六个
A: 如果我们利用 canvas 做碰撞检测复刻一个,你觉得怎么样?整个绘制只有 Ball(p,r) 一种类型两个参数!简直和只有 fillRect 的贪吃蛇一样简单
B: 和 web asteroids 的 doc.elementFromPoint…
https://blog.csdn.net/chzphoenix/article/details/77968756 #Android matrix 实现的百叶窗渐变动画
https://blog.51cto.com/283859701/1945248 同上但只有链接
https://www.cnblogs.com/i7758/p/4806251.html #CSS 十种动画 trick 集
https://blog.51cto.com/283859701/1945248 同上但只有链接
https://www.cnblogs.com/i7758/p/4806251.html #CSS 十种动画 trick 集
blog.csdn.net
Android魔法(第四弹)—— 一步步实现百叶窗效果_There is a Bug!!!-CSDN博客
本篇是基于AnimationListView框架的,这个框架在上一篇中详细的讲解了,建议阅读本篇前先熟悉一下。Android魔法系列:http://blog.csdn.net/chzphoenix/article/details/77962259项目的github地址:FastWidget4Android 很多炫酷的自定义效果,欢迎fork和star!1、
噢,想起来了,可以用 ins,del(N),blink(char),delay 序列做动画…… 然后加 delayPosition 这样的预处理函数🤔
百叶窗的话设置 indices 再 shuffle 替换就很像了,还要自动折行的,有必要考虑下怎么做…… 怕不是要看 TextRange
百叶窗的话设置 indices 再 shuffle 替换就很像了,还要自动折行的,有必要考虑下怎么做…… 怕不是要看 TextRange