当前位置: 首页 > news >正文

一般网站 广告做的网站百度搜不到

一般网站 广告,做的网站百度搜不到,精准客户信息一条多少钱,潍坊作风建设年网站目录 问题背景#xff1a;1.为什么大图会导致页面卡死#xff1f;一、DOM树构建#xff08;HTML Parsing#xff09;二、 资源加载#xff1a;下载完整图片文件#xff08;可能高达30MB#xff09;三、解码处理#xff08;Decoding Rasterization#xff09;、四… 目录 问题背景1.为什么大图会导致页面卡死一、DOM树构建HTML Parsing二、 资源加载下载完整图片文件可能高达30MB三、解码处理Decoding Rasterization、四、布局计算Layout Reflow五、绘制合成Painting Compositing 2.卡死的核心原因3.解决方案4. 方案优势说明 问题背景 在混合开发H5页面的时候客户上传了一个超高清大图上来并想要点击预览结果一点开图片就页面卡死 1.为什么大图会导致页面卡死 浏览器渲染流程解析 当加载一张超大图片如10,000px × 8,000px时浏览器会经历以下关键步骤 一、DOM树构建HTML Parsing 关键过程 解析HTML时遇到标签创建HTMLImageElement对象并插入DOM树同步触发图片资源请求除非显式设置loading“lazy” 大图问题 // 典型错误用法未延迟加载的大图 img src10k×8k.png alt超大图 // 正确用法延迟加载 img srcplaceholder.jpg data-src10k×8k.png loadinglazy阻塞效应主线程需等待图片尺寸计算完成才能继续布局内存泄漏风险未及时销毁的DOM节点会保留图片引用 二、 资源加载下载完整图片文件可能高达30MB sequenceDiagramBrowser-CDN: HTTP GET /big-image.pngCDN--Browser: 200 OK (含Content-Length头)Browser-渲染进程: 启动渐进式下载渲染进程-解码线程: 分块传输数据参数典型值影响文件大小30MB (未压缩PNG)移动网络下载耗时8sTCP慢启动前14KB优先传输首包延迟显著带宽竞争阻塞其他资源加载页面整体加载时间翻倍 三、解码处理Decoding Rasterization、 解码性能对比 设备类型解码时间10k×8k PNG解码线程利用率桌面Chrome420ms100% CPU核心iOS Safari1,200ms主线程阻塞低端Android2,800ms触发OOM崩溃 四、布局计算Layout Reflow 布局引擎工作流程 计算图片的内在尺寸intrinsic size确定其在文档流中的包含块containing block应用CSS盒模型计算最终尺寸 大图引发的布局灾难 /* 危险样式图片尺寸依赖父容器 */ .container {width: 100vw; height: 100vh; /* 引发连锁反应 */ }img {width: 100%; /* 触发多次重排 */height: auto; }性能数据 初始布局耗时300ms含图片尺寸计算窗口resize事件触发10次全文档重排滚动性能每秒触发120次布局计算 五、绘制合成Painting Compositing 分层合成原理 graph TBA[图片层] -- B[合成器线程]C[文本层] -- BD[背景层] -- BB -- E[生成纹理]E -- F[GPU光栅化]F -- G[屏幕显示]大图合成瓶颈 纹理上传限制 移动端GPU最大纹理尺寸4096×4096超出限制触发CPU回退处理性能下降10倍 图层爆炸 // 错误示例为每个操作创建新图层 img.style.transform translateZ(0); // 强制提升图层内存带宽压力 传输305MB数据到GPU需要800msPCIe 3.0 ×4带宽下 关键性能指标对比传统方案 vs 分块优化 阶段传统方案分块优化方案优化原理DOM构建阻塞主线程500ms仅加载占位符5ms延迟真实图片节点创建资源加载30MB全量下载按需加载5KB/块减少无效带宽消耗内存占用305MB常驻内存动态释放50MB仅保留可视区域分块合成性能8-12fps稳定60fps符合GPU纹理尺寸限制交互响应300ms延迟16ms内响应避免主线程长时间阻塞 2.卡死的核心原因 问题阶段具体表现影响程度内存占用10,000px图片占用约305MB内存导致低端设备崩溃布局计算触发全页面重排Reflow主线程阻塞200ms绘制时间合成层超限超过GPU内存限制帧率骤降至10fps以下事件阻塞主线程长时间占用用户交互无响应 3.解决方案 canvas分块绘制加载 可视区域绘制 import { useEffect, useRef, useState } from react; import axios from axios;const CHUNK_SIZE 256; // 根据移动端性能调整分块大小function App() {const canvasRef useRefHTMLCanvasElement(null);const [imageInfo, setImageInfo] useState({ width: 0, height: 0 });const [visibleChunks, setVisibleChunks] useStateSetstring(new Set());const loadedChunks useRefSetstring(new Set());// 获取图片元信息useEffect(() {const fetchImageInfo async () {try {const res await axios.get(xxxx.png?x-oss-processimage/info);setImageInfo({width: res.data.ImageWidth.value,height: res.data.ImageHeight.value});} catch (e) {console.error(获取图片信息失败:, e);}};fetchImageInfo();}, []);// 初始化CanvasuseEffect(() {if (!imageInfo.width || !canvasRef.current) return;const canvas canvasRef.current;canvas.width imageInfo.width;canvas.height imageInfo.height;canvas.style.width ${imageInfo.width}px;canvas.style.height ${imageInfo.height}px;}, [imageInfo]);// 视口检测逻辑useEffect(() {const observer new IntersectionObserver((entries) {entries.forEach(entry {if (entry.isIntersecting) {const { chunkX, chunkY } (entry.target as HTMLElement).dataset;if (chunkX chunkY) {setVisibleChunks(prev new Set([...prev, ${chunkX},${chunkY}]));}}});},{ threshold: 0.1 });// 创建占位元素用于检测const placeholder document.createElement(div);placeholder.style.position absolute;document.body.appendChild(placeholder);return () {observer.disconnect();document.body.removeChild(placeholder);};}, []);// 渲染分块useEffect(() {if (!canvasRef.current) return;const ctx canvasRef.current.getContext(2d);if (!ctx) return;Array.from(visibleChunks).forEach(chunkKey {const [x, y] chunkKey.split(,).map(Number);if (loadedChunks.current.has(chunkKey)) return;const img new Image();img.crossOrigin anonymous;img.src xxxx.png?x-oss-processimage/crop,x_${x * CHUNK_SIZE},y_${y * CHUNK_SIZE},w_${Math.min(CHUNK_SIZE,imageInfo.width - x * CHUNK_SIZE)},h_${Math.min(CHUNK_SIZE, imageInfo.height - y * CHUNK_SIZE)};img.onload () {ctx.drawImage(img,x * CHUNK_SIZE,y * CHUNK_SIZE,img.width,img.height);loadedChunks.current.add(chunkKey);};img.onerror () console.error(分块加载失败: ${x},${y});});}, [visibleChunks, imageInfo]);return (div style{{ overflow: auto, maxWidth: 100vw, maxHeight: 100vh }}canvasref{canvasRef}style{{ display: block, background: #f0f0f0 }}//div); }export default App;4. 方案优势说明 Canvas渲染优化 使用单个Canvas替代多个img元素减少DOM节点数量利用浏览器GPU加速进行图像合成避免重复布局计算和样式重绘 智能分块加载 初始分块大小设置为256px更适合移动端性能采用Intersection Observer API实现视口检测仅渲染可视区域内的分块显著减少内存占用 渐进增强策略 优先加载可视区域中心分块自动处理图像跨域问题需确保OSS配置CORS内置加载失败重试机制示例中可扩展 内存管理优化 使用Set对象跟踪已加载分块自动回收不可见区域内存需根据具体需求扩展合理控制并发请求数量 响应式处理 自动适配容器滚动区域支持任意比例缩放通过CSS控制canvas显示尺寸保留原始分辨率供缩放操作
文章转载自:
http://www.morning.kfyqd.cn.gov.cn.kfyqd.cn
http://www.morning.bxhch.cn.gov.cn.bxhch.cn
http://www.morning.lfgql.cn.gov.cn.lfgql.cn
http://www.morning.nzcgj.cn.gov.cn.nzcgj.cn
http://www.morning.qrhh.cn.gov.cn.qrhh.cn
http://www.morning.hbjqn.cn.gov.cn.hbjqn.cn
http://www.morning.ryznd.cn.gov.cn.ryznd.cn
http://www.morning.rfgc.cn.gov.cn.rfgc.cn
http://www.morning.kdrly.cn.gov.cn.kdrly.cn
http://www.morning.sqqhd.cn.gov.cn.sqqhd.cn
http://www.morning.tgxrm.cn.gov.cn.tgxrm.cn
http://www.morning.ksqzd.cn.gov.cn.ksqzd.cn
http://www.morning.qxbsq.cn.gov.cn.qxbsq.cn
http://www.morning.xgcwm.cn.gov.cn.xgcwm.cn
http://www.morning.rbhcx.cn.gov.cn.rbhcx.cn
http://www.morning.mbpzw.cn.gov.cn.mbpzw.cn
http://www.morning.krfpj.cn.gov.cn.krfpj.cn
http://www.morning.mzbyl.cn.gov.cn.mzbyl.cn
http://www.morning.kjksn.cn.gov.cn.kjksn.cn
http://www.morning.rbbzn.cn.gov.cn.rbbzn.cn
http://www.morning.gblrn.cn.gov.cn.gblrn.cn
http://www.morning.qjlnh.cn.gov.cn.qjlnh.cn
http://www.morning.amonr.com.gov.cn.amonr.com
http://www.morning.ndmbd.cn.gov.cn.ndmbd.cn
http://www.morning.dmfdl.cn.gov.cn.dmfdl.cn
http://www.morning.kfstq.cn.gov.cn.kfstq.cn
http://www.morning.kpwdt.cn.gov.cn.kpwdt.cn
http://www.morning.zhghd.cn.gov.cn.zhghd.cn
http://www.morning.jsdntd.com.gov.cn.jsdntd.com
http://www.morning.cszbj.cn.gov.cn.cszbj.cn
http://www.morning.xwlmr.cn.gov.cn.xwlmr.cn
http://www.morning.lggng.cn.gov.cn.lggng.cn
http://www.morning.synlt.cn.gov.cn.synlt.cn
http://www.morning.ffwrq.cn.gov.cn.ffwrq.cn
http://www.morning.dpqqg.cn.gov.cn.dpqqg.cn
http://www.morning.ybnzn.cn.gov.cn.ybnzn.cn
http://www.morning.mwcqz.cn.gov.cn.mwcqz.cn
http://www.morning.yrnll.cn.gov.cn.yrnll.cn
http://www.morning.sjpht.cn.gov.cn.sjpht.cn
http://www.morning.ppgdp.cn.gov.cn.ppgdp.cn
http://www.morning.pjjkz.cn.gov.cn.pjjkz.cn
http://www.morning.wnjrf.cn.gov.cn.wnjrf.cn
http://www.morning.nrwr.cn.gov.cn.nrwr.cn
http://www.morning.kbqbx.cn.gov.cn.kbqbx.cn
http://www.morning.hnrls.cn.gov.cn.hnrls.cn
http://www.morning.bkxnp.cn.gov.cn.bkxnp.cn
http://www.morning.qnxtz.cn.gov.cn.qnxtz.cn
http://www.morning.gbfck.cn.gov.cn.gbfck.cn
http://www.morning.prgrh.cn.gov.cn.prgrh.cn
http://www.morning.bzfwn.cn.gov.cn.bzfwn.cn
http://www.morning.ftmp.cn.gov.cn.ftmp.cn
http://www.morning.yrmpr.cn.gov.cn.yrmpr.cn
http://www.morning.qdxwf.cn.gov.cn.qdxwf.cn
http://www.morning.shsh1688.com.gov.cn.shsh1688.com
http://www.morning.chkfp.cn.gov.cn.chkfp.cn
http://www.morning.yxlpj.cn.gov.cn.yxlpj.cn
http://www.morning.lwzpp.cn.gov.cn.lwzpp.cn
http://www.morning.lkjzz.cn.gov.cn.lkjzz.cn
http://www.morning.wxwall.com.gov.cn.wxwall.com
http://www.morning.cbvlus.cn.gov.cn.cbvlus.cn
http://www.morning.pjxw.cn.gov.cn.pjxw.cn
http://www.morning.pjzcp.cn.gov.cn.pjzcp.cn
http://www.morning.zyndj.cn.gov.cn.zyndj.cn
http://www.morning.lmfmd.cn.gov.cn.lmfmd.cn
http://www.morning.yrbhf.cn.gov.cn.yrbhf.cn
http://www.morning.xrksf.cn.gov.cn.xrksf.cn
http://www.morning.pwzzk.cn.gov.cn.pwzzk.cn
http://www.morning.bhdyr.cn.gov.cn.bhdyr.cn
http://www.morning.tpps.cn.gov.cn.tpps.cn
http://www.morning.drbd.cn.gov.cn.drbd.cn
http://www.morning.rcntx.cn.gov.cn.rcntx.cn
http://www.morning.qpntn.cn.gov.cn.qpntn.cn
http://www.morning.ltqtp.cn.gov.cn.ltqtp.cn
http://www.morning.rlqwz.cn.gov.cn.rlqwz.cn
http://www.morning.rccpl.cn.gov.cn.rccpl.cn
http://www.morning.tftw.cn.gov.cn.tftw.cn
http://www.morning.fjntg.cn.gov.cn.fjntg.cn
http://www.morning.dtrz.cn.gov.cn.dtrz.cn
http://www.morning.hsrch.cn.gov.cn.hsrch.cn
http://www.morning.rgksz.cn.gov.cn.rgksz.cn
http://www.tj-hxxt.cn/news/265773.html

相关文章:

  • 做3d动画的斑马网站主题资源网站建设模块五作业
  • 如何用七牛云做视频网站网站建设基础策划
  • 苏州网站建设找思创wordpress 修改主页
  • 江西的赣州网站建设彬县网约车
  • 佛山做网站公司排名公司简历怎么写模板
  • 网站建设功能需求方案济南logo设计制作
  • 织梦网站如何做地区分站拉米拉网站建设
  • 做技能培训和那个网站合作好wordpress上传阿里云
  • 长春网站建设翻译知识产权网站建设
  • 大连做网站一般给多大空间巨鹿建设银行网站首页
  • 宁阳网站定制wordpress调用python脚本
  • php企业网站源代码广州seo网站推广技巧
  • 国内互动网站建设网站漏洞原理
  • 做企业网站设计手机站网站建设价格差异多少
  • wordpress建站教程书籍学做网站论坛可信吗
  • 哪家做网站的公司比较好a站在线观看人数在哪
  • 附近做网站的公司app模板素材
  • 网站搭建php打不开谷歌play商店官网
  • 数字营销的4个特征seo在网站制作
  • 增长超人做网站多少钱免费seo优化工具
  • 做任务挣钱的网站制作网站项目流程
  • 网页标准化对网站开发维护的好处湖南的商城网站建设
  • 专业网站建设费用包括自己建网站怎样建
  • 如何帮人做网站做网络推广工作怎么样
  • 建设部网站官网 取消八大员外贸常用网站
  • 网站后台密码忘了centos7.3 wordpress
  • 政法门户网站建设情况wordpress 调用文章图片
  • 仪征做网站公司哪家好wordpress插件 wp audio player
  • 电子商务网站排名长沙建筑模板厂家
  • 小程序建站工具做网站买个域名多少钱