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

山西设计网站公司北京做网站哪家专业

山西设计网站公司,北京做网站哪家专业,免费php企业网站,铁岭网站建设 258魔站关于防御性编程 你是否遇到过,接口请求失败或者返回数据错误,导致系统白屏或者前端自身写的代码存在一些缺陷,导致整个系统不够健壮,从而导致系统白屏 常见的问题与防范 最常见的问题 访问了null或者undefined的属性 null.a …

关于防御性编程

  • 你是否遇到过,接口请求失败或者返回数据错误,导致系统白屏
  • 或者前端自身写的代码存在一些缺陷,导致整个系统不够健壮,从而导致系统白屏

常见的问题与防范

最常见的问题

  • 访问了null或者undefined的属性
null.a
Uncaught TypeError: Cannot read properties of null (reading 'a')
  • 防御方案:使用可选链?.,可选链会在遇到空值时返回undefined
const obj = {}
console.log(obj?.a?.b)

前端接口层面的错误机制捕获

使用单例模式,将所有的axios请求都用一个函数封装一层。统一可以在这个函数中catch捕获接口调用时候的未知错误

单例模式保证一个类只有一个实例,并提供一个全局访问点来获取它。

request(config: AxiosRequestConfig) {return new Promise((resolve, reject) => {this.instance.request(config).then(res => {resolve(res)}).catch(err => {reject(err)})})}

前端复杂异步场景导致的错误

在前端项目中,直接修改导出的对象会导致状态不可控,尤其是在复杂异步场景中,你很难判断数据在某个时刻的值到底是什么、是被谁改的。通过封装 setter 函数,可以显式地记录每次修改的 key 和 value,从而实现「单向数据流」的状态管理方式。这种方式不仅提升了可读性与可维护性,还更利于 debug 和扩展,是一种更加稳健的防御性编程策略。

问题背景

// test.js
export const obj = {a: 1,b: 2
}// 使用 obj
import { obj } from './test.js'
obj.a = 3

这段代码的问题是

  • obj是一个导出的全局对象
  • 任何文件都能直接修改它的属性
  • 多个模块、异步任务可能都在读写它
  • 导致你无法跟踪它的状态是怎么变的,在哪变的,什么时候变得

解决方案:

// test.js
export const obj = {a: 1,b: 2
}export function setObj(key, value) {console.log(key, value)obj[key] = value
}
  • 修改行为统一管理,数据更可控
  • 日志追踪更方便

扩展
这体现了单向数据流的应用

所有的数据改动都走一个方向,一个入口,不允许乱改

这也是为什么像React、Vue、Redux等框架都鼓励 “不可变数据 + action” 的方式来改变状态

前端专注前端

在涉及登录态、权限控制、敏感信息等安全相关场景中,前端应遵循职责分离的设计理念,尽量避免直接处理或解析敏感数据,仅负责数据的安全转发和展示控制。鉴权逻辑应统一由后端完成,前端通过接口响应结果进行视图判断,从而降低安全风险,提升系统的可维护性与稳定性

页面做到可降级

对于一些刚上新的业务,或者有存在风险的业务模块,或者会调取不受信任的接口,例如第三方的接口,这个时候就要做一层降级处理,例如接口调用失败后,剔除对应模块的展示,让用户无感知的使用

巧用loading和disabled

  • 在用户触发操作(比如点击按钮、提交表单、发起请求)后,及时给按钮或控件加上 loading 状态或 disabled 状态。
  • 确保不让用户进行重复操作,防止业务侧出现 bug

为什么这样做

  1. 防止重复提交或者点击
  2. 明确交互状态
  3. 减轻后端压力

慎用innerHTML

  • innerHTML 是直接把字符串插入 DOM 的方法;

  • 如果插入的字符串中包含 script、<img οnerrοr=…、a href=“javascript:…” 等恶意代码,浏览器就会执行它;

  • 这些代码一旦被执行,可能导致 XSS 攻击。

什么是XSS攻击?

  • XSS(Cross-Site Scripting)跨站脚本攻击,是指黑客在页面中注入恶意脚本代码,从而获取用户信息、劫持登录态、跳转钓鱼页面等。

比如:

innerHTML = '<img src="x" onerror="alert(document.cookie)">'

用户打开这个页面时就会弹出自己的 cookie,一旦被攻击者获取,可能会导致账户被盗、信息泄露等严重后果。


文章转载自:

http://8Drmn7i9.mngyb.cn
http://UgBd2MD0.mngyb.cn
http://CJGVYY82.mngyb.cn
http://Crez1Aaw.mngyb.cn
http://g6SiSRm5.mngyb.cn
http://eqgZYzRB.mngyb.cn
http://E33h4E7u.mngyb.cn
http://gZBUderr.mngyb.cn
http://Q1yStxla.mngyb.cn
http://u89DbhUk.mngyb.cn
http://GMbdrQns.mngyb.cn
http://knN7GYnt.mngyb.cn
http://7WtVHNed.mngyb.cn
http://CxCkv01s.mngyb.cn
http://a2uwIx8X.mngyb.cn
http://xueH5k8G.mngyb.cn
http://dYZD3nMO.mngyb.cn
http://3Dpamp4z.mngyb.cn
http://bZVvYv9K.mngyb.cn
http://cBfNV2ly.mngyb.cn
http://hRjxrxWI.mngyb.cn
http://tzo9E3xi.mngyb.cn
http://BEt1YGup.mngyb.cn
http://4PggbNKn.mngyb.cn
http://raVR4ygn.mngyb.cn
http://Fb4WNRAx.mngyb.cn
http://0zIk2J5G.mngyb.cn
http://cYFFnKFZ.mngyb.cn
http://0N14z7r5.mngyb.cn
http://L15sfDdp.mngyb.cn
http://www.dtcms.com/wzjs/734429.html

相关文章:

  • wordpress客户端建站南冒网站建设制作推广公司
  • 做网站技术员怎么去推广一个产品
  • 做竞赛的平台或网站大型集团网站建设公司
  • 企业网站制作一般多少钱网站建设更新不及时
  • 上海做网站比较好的网站建设服务合同印花税
  • 建站市场开发商城微信小程序
  • 网站怎么做下拉刷新页面数据wordpress sae 安装主题
  • 网站建设基础策划书建网站做站在
  • 开网站挣不挣钱自助建站源码下载
  • 如何开个公司网站甘肃省和城乡建设厅网站
  • 自己做的网站如何让别人访问牡丹江市建设行业协会网站
  • 惠州网站建设推广wordpress注册文件
  • 网站开发和建设展厅设计制作公司会计分录
  • 上海网站建设框架图凡客诚品app下载
  • 网站视频下载到手机怎么做国家工商局网站官网
  • 建筑工程找工作哪个网站好wordpress评论优化插件
  • 企业信用网站建设凡科网站建设总结
  • 网站建设赶集网网站空间每年继费到哪交
  • 宁夏建设技术职业学院官方网站源码之家网站
  • 沧州做网站公司西安网络科技有限公司有哪些
  • 软件开发和网站开发有何不同重庆网站建设 制作 设计 优惠价
  • 北京中御建设公司网站无锡网页制作报价
  • 网站快捷导航ie怎么做网站优化报价单
  • 网站seo优化方案项目策划书个人简历表下载可填写
  • 网站优化内链怎么做做网站建设要学多久
  • python 网站开发 实例手机seo关键词优化
  • 杭州网站制作平台公司旅行社网站模板
  • asp access网站架设教程建设网站的用途
  • 网站首页图片素材长图郴州买房网站
  • 4399游戏盒下载官方网站无锡百度网站推广