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

 一只幸福的汪星人 发布于 2023-02-13 10:06

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

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

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

编辑:

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

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

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

    我们将其分为两部分.

    除非您打算为某个目的停止执行代码,否则不应将警报用于调试.否则,您应该使用,console.log因为如果您的代码涉及异步逻辑,alert可以实际更改代码的结果." 但IE中不支持console.log! "是的,如果控制台是开放的.在生产代码中,您的调试代码不应该在那里.为了防止被遗忘的console.logs,只需将其填充即可.对于除调试其他用途,如告知事情发生的用户,这是一般最好使用通知的变化发生如高亮元素或与信息文本的横幅用户的一些其他的方式,但是,没有什么用只要暂停执行不会影响您的代码,就会出现警报.

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

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

    2023-02-13 10:08 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有