为什么我不应该在JavaScript中使用Alert?

我需要在某些情况下通知用户,并且已经看到不应该使用confirm()和alert().相反,很多问题都提到在jQuery UI中使用模态事物,特别是如果你需要设计样式.这一切都很好,花花公子,但是,在一天结束时,编码员说你应该远离它的原因是什么?

This一个很好的例子,说明人们的感受,但几乎任何其他涉及样式警报框的问题都有相同的评论.它只是一个造型问题还是有更多根本原因回避这种内置功能

更重要的是,没有一个答案谈论你应该使用什么. jQuery UI和类似的预建解决方案是唯一的答案吗?为什么?性能或安全性或缺乏经验的程序员是否需要易于使用的东西或……?

编辑:

好的,让我澄清一下.我问的原因是因为警报功能是为了防止用户意外删除他们一直在做的工作,因为有三种方法可以在这页面上启动新计划,并且每个方法都会删除现有的内部html.显示计划的div.

我听到的大部分内容都是对用户用户界面有害,如果引起愤怒,引起注意力是我想要的,那么我应该使用什么呢?有人提到警报/确认会暂停JavaScript执行,并可能阻止您使用其他选项卡.这更接近我期待的功能问题.我知道这对UI来说很糟糕,但我在这里寻找更多技术原因.

解决方法

没有“技术原因”您不应该使用内置的浏览器方法来进行警报和确认功能.这都是自以为是的.

我们将其分为两部分.

除非您打算为某个目的停止执行代码,否则不应将警报用于调试.否则,您应该使用console.log,因为如果您的代码涉及异步逻辑,alert实际上可以更改代码的结果. “但IE中不支持console.log!”是的,如果控制台是打开的.在生产代码中,您的调试代码不应该在那里.为了防止被遗忘的console.logs,只需将其填充即可.对于除调试之外的用途,例如通知用户发生了某些事情,通常最好使用其他方式通知用户发生了更改,例如突出显示元素或带有信息文本的横幅,使用没有任何问题只要暂停执行不会影响您的代码,就会出现警报.

确认是询问用户“你确定吗?”的标准方式.在执行诸如删除信息之类的破坏性操作之前.它很容易理解并被许多网站使用,所以我建议在你自己的代码中使用它.替代方案通常会导致额外的代码为您的应用程序添加不必要的复杂性.但请记住,确认也会阻止执行,因此您应该确保它不会影响您可能运行的任何异步逻辑.

如果您的异步代码写得正确,它通常不会受到执行暂停的影响.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...