仅仅就是为了做模拟native的下拉刷新吗?
回复内容:
其实是得不偿失的,前端很难想象浏览器为了网页滚动的流畅性做了多少优化,才能达到稳定60fps的效果,而JS控制的滚动就意味着放弃了这些优化,并且还要加上额外的JS/DOM/CSS开销。一些浏览器常见的滚动优化:
1,预判滚动的方向,预先生成不可见区域纹理;
2,异步光栅化,延迟光栅化;
3,延迟甚至停止内核网页重绘/重排版;
4,线程优先级调整,任务优先级调整;
----
补充浏览器处理滚动的一些其它优势:
1,浏览器处理触屏事件比使用JS处理响应更及时;
2,浏览器一般使用OS本身的惯性滚动算法,更符合用户的使用体验;
3,浏览器可以记录页面的滚动位置,在前进后退或者后台被杀重启后可以自动恢复页面的位置;
如果需要了解更多浏览器渲染的知识,可以阅读我的文章:
How Rendering Work (in WebKit and Blink) 淘宝的前端是渣,看下天猫淘宝商品页的源代码就知道,要多难看有多难看。最近一年有改善,不知道是哪个部门主导的。 不仅是 Web 端,也有一些其他的客户端之类的 view(视图) 选择自己实现滚动效果,而屏蔽掉浏览器、view 组件的默认滚动。
自己实现滚动,可以让 view 有更丰富的动作和效果,也为其增加了更多的可控制能力(参数化、函数化)。
但是,自定义组件和动作会有更多的麻烦:
1. 兼容性无法保证。许多自定义的内容只在有限的平台和设备上测试过,在一些未测试的设备和平台上,可能存在 Bug、性能差、不稳定或者表现不一致等诸多问题。
2. 丢失了通用的默认行为。举个例子:浏览器打开页面时,可以滚动到 URL 中 #abc 对应的页面中 ID 为 abc 的元素,如果你的页面是单页应用,但子页面跟 URL 无关,那这种滚动(或单页应用中的切换子页面)行为就丢掉了。类似的例子还有很多,都是坑。
如果没有能力保证兼容性,并实现或保留通用的默认行为,还是不要自定义。 在我手机上巨卡,安卓uc浏览器 忘记安卓4.0还是4.1了,ajax载人的东西滚蛋有bug,烦死人 当你有足够开发能力的时候,自己实现滚动好处多多,
1.微调参数,例如滚动速度,惯性,越界回弹距离,时间,android的webview是没有自带回弹的
2.更多的功能,例如下拉刷新,实现更好看的滚动条
3.防止一些问题,比如单页app拉动出页面边界
自己只有用到过这些 ios在滚动的时候会禁js,可能是因为这个原因吧

이 기사는 & lt; audio & gt를 사용하여 HTML5에 오디오를 포함시키는 방법을 설명합니다. 형식 선택에 대한 모범 사례 (MP3, OGG Vorbis), 파일 최적화 및 재생에 대한 JavaScript 컨트롤을 포함한 요소. 다중 오디오를 사용하는 것을 강조합니다

이 기사에서는 HTML5 페이지 가시성 API를 사용하여 페이지 가시성을 감지하고 사용자 경험을 향상 시키며 리소스 사용량을 최적화하는 것에 대해 설명합니다. 주요 측면에는 미디어 일시 정지, CPU 부하 감소 및 가시성 변경에 기반한 분석 관리가 포함됩니다.

이 기사에서는 Viewport Meta 태그를 사용하여 모바일 장치의 페이지 스케일링을 제어하여 폭과 최적의 응답 성 및 성능을위한 초기 스케일과 같은 설정에 중점을 둡니다. character count : 159

이 기사에서는 HTML5 양식을 작성하고 검증하는 방법을 설명합니다. 그것은 & lt; form & gt; 요소, 입력 유형 (텍스트, 이메일, 번호 등) 및 속성 (필수, 패턴, 최소, 최대). HTML5의 장점은 오래된 방법에 비해 형성됩니다

이 기사는 지리적 위치 API를 사용하여 사용자 위치 개인 정보 및 권한 관리, 권한 요청, 데이터 보안 보장 및 개인 정보 보호법 준수에 대한 모범 사례를 강조하는 것에 대해 설명합니다.

이 기사는 JavaScript를 사용하여 대화식 HTML5 게임을 만드는 자세한 내용입니다. 게임 디자인, HTML 구조, CSS 스타일, JavaScript 로직 (이벤트 처리 및 애니메이션 포함) 및 오디오 통합을 다룹니다. 필수 JavaScript 라이브러리 (Phaser, PI

이 기사는 HTML5 드래그 앤 드롭 API를 사용하여 대화식 사용자 인터페이스를 생성하고 요소를 드래그 가능하게 만들고 주요 이벤트를 처리하며 사용자 정의 피드백으로 사용자 경험을 향상시키는 방법을 자세히 설명합니다. 또한 일반적인 함정에 대해 설명합니다

이 기사에서는 실시간, 양방향 클라이언트 서버 커뮤니케이션을위한 HTML5 WebSockets API를 설명합니다. 클라이언트 측 (JavaScript) 및 서버 측 (Python/Flask) 구현에 대해 자세히 설명하여 확장 성, 상태 관리,


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구
