{"id":17035879,"url":"https://github.com/dabeng/optimize","last_synced_at":"2025-07-30T09:39:12.808Z","repository":{"id":76025327,"uuid":"152555040","full_name":"dabeng/optimize","owner":"dabeng","description":null,"archived":false,"fork":false,"pushed_at":"2018-10-14T08:51:36.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-28T02:22:45.900Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dabeng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-11T08:10:09.000Z","updated_at":"2018-10-14T08:51:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"b4c83f9a-38aa-46ec-96db-76541b470dfc","html_url":"https://github.com/dabeng/optimize","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dabeng%2Foptimize","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dabeng%2Foptimize/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dabeng%2Foptimize/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dabeng%2Foptimize/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dabeng","download_url":"https://codeload.github.com/dabeng/optimize/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245031345,"owners_count":20549913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T08:48:27.753Z","updated_at":"2025-03-22T22:41:44.049Z","avatar_url":"https://github.com/dabeng.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# 网页加载速度所面对的问题及对策\n\n## HTTP请求数量太多\n- 分类合并同质资源，减少文档中引入的资源数量\n- 减少业务逻辑代码中不必要的请求\n- 减少重定向，减少iframe\n\n## HTTP请求返回的结果或资源过大\n- 控制结果集\n- 压缩处理静态资源\n- 不要因为使用少量UI组件，而引入整个UI库\n\n## 没有结合实际的业务复杂度，肆意引入重量级的Library或Framework\n- 实事求是，根据业务需求上下文，来进行前端技术栈选型\n\n## 未控制载入的页面内容\n引入懒加载。按时间延迟，按条件，按可视域去触发相应内容的载入\n\n## 服务器端serve的网页未经压缩处理\n在服务器端启动GZIP压缩，大大减少网络传输的数据量\n\n## 未启用浏览器缓存功能\n充分利用浏览器缓存（Expires \u0026 Cache-Control）\n\n## 图片未经优化\n- 使用Base64 编码处理图片，然后嵌到html或css文件里，会很可观的减少http请求\nBase64的试用场景是：图片比较小（10k以内）；用法特殊，不能被制作到雪碧图里；站点里复用率高，更新频度低\n- 小图标合并成sprite图 \n\n## 页面内容臃肿；页面元素嵌套层次太深\n不要妄想把所有内容集中到一个页面里，这样除了带来性能上的拖累之外，也会让用户失去关注点\n- 根据业务逻辑合理划分web内容到相应网页，同时避免深层嵌套的DOM结构\n\n## 使用CDN提供静态资源（css,js files）\n\n## 资源文件引入文档中的位置不对 \n好的实践是，css文件置于文档头部，jS文件置于文档尾部\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdabeng%2Foptimize","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdabeng%2Foptimize","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdabeng%2Foptimize/lists"}