js直接操作数据库有什么弊端 (为什么js需要异步)

JS 不能绕过后端代码直接调数据库的原因在于 浏览器和数据库之间的安全限制。 通常情况下,浏览器只能通过 HTTP 请求与服务器进行通信,而数据库则不直接面向用户,而是通过服务器中间层进行数据交互。

这种架构可以有效保护数据库不受到未经授权的访问和攻击。 如果 JS 直接访问数据库,就会绕过服务器中间层的控制,破坏了这种安全限制,导致数据库可能遭受 SQL 注入、数据泄露等安全问题。 因此,为了保障数据安全,需要在后端代码中添加数据访问控制,限制用户对数据库的访问权限。同时,也可以通过 API 等方式提供有限的数据库访问接口,以便前端代码调用。

JS 不能写的后端处理逻辑包括但不限于:

  1. 数据库访问和操作: 只有后端代码可以操作数据库,JS 无法直接操作数据库。
  2. 用户权限管理: 用户验证和授权等安全性操作需要在后端代码中实现,JS 无法直接操作用户权限。
  3. 文件系统操作: 后端代码可以读写服务器上的文件系统,而 JS 无法直接操作服务器上的文件系统。
  4. 网络协议处理: 后端代码可以处理不同的网络协议,如 TCP/IP、HTTP 等,而 JS 只能通过浏览器提供的接口访问网络。
  5. 服务器资源管理: 后端代码可以管理服务器资源,如 CPU、内存、磁盘等,而 JS 无法直接管理服务器资源。
  6. 邮件发送和接收: 后端代码可以发送和接收电子邮件,而 JS 无法直接发送和接收电子邮件。
  7. 日志记录和监控: 后端代码可以记录和监控服务器的运行状态和错误日志,而 JS 无法直接记录和监控服务器的运行状态和错误日志。

总之,后端处理的逻辑主要包括与服务器资源和数据库的交互、数据处理、安全性操作等,这些逻辑需要在后端代码中实现,JS 不能直接写。

初学者学JavaScript可以列一个22天学习计划,这么学,轻松学习JavaScript只需搞定这4部分! 第一部分JavaScript基础 9天 前端JavaScript入门到精通全套js视频教程(基础+应用+进阶)

JavaScript基础从变量的定义与使用、数据类型及相互转换、运算符、流程控制语句、三元运算符、数组、函数、构造函数、内置对象以及对象等基础必备技能。

  1. JavaScript初识导读
  2. 初始JavaScript
  3. 浏览器执行JS过程
  4. JS三部分组成
  5. JS三种书写位置
  6. JS注释
  7. 什么是变量
  8. 变量的使用
  9. 变量小结
  10. 数据类型简介
  11. 字符串型String
  12. boolean以及undefined和null
  13. typeof检测变量数据类型
  14. 字面量
  15. 转换为字符串类型
  16. 运算符导读
  17. 算数运算符
  18. 表达式和返回值
  19. 前置递增运算符
  20. 后置递增运算符
  21. 递增运算符练习
  22. 前置递增和后置递增小结
  23. 比较运算符
  24. 逻辑运算符
  25. 逻辑运算符练习
  26. 逻辑中断逻辑与
  27. 逻辑中断逻辑或
  28. 赋值运算符
  29. 运算符优先级
  30. 流程控制分支结构导读
  31. 流程控制

第二部分 WEB APIs 7天

前端JavaScript入门到精通全套js视频教程(基础+应用+进阶)

学完JavaScript基础,就可以学习JavaScript核心 DOM 和 BOM操作了,真正体会JavaScript的魅力,这里我们会讲解如何获取DOM元素,如何操作DOM 元素,BOM操作, 事件,事件对象,事件委托,JS执行队列,定时器,常见网页特效,比如轮播图,tab栏切换等。 还会讲解移动端如何制作网页特效,带你进入JavaScript的实际开发应用

  1. js基础和Web APIs两个阶段的关联性
  2. API 和 Web API
  3. DOM导读
  4. DOM简介
  5. getElementById获取元素
  6. getElementsByTagName获取某类标签元素
  7. H5新增获取元素方式
  8. 获取body和html元素
  9. 事件三要素
  10. 执行事件过程
  11. 操作元素-修改元素内容
  12. innerText和innerHTML的区别
  13. 操作元素-修改元素属性
  14. 分时问候案例
  15. 操作元素-修改表单属性
  16. 仿京东显示隐藏密码明文案例(上)
  17. 仿京东显示隐藏密码明文案例(下)
  18. 操作元素-修改样式属性
  19. 仿淘宝关闭二维码案例
  20. 循环精灵图
  21. 显示隐藏文本框内容
  22. 使用className修改样式属性
  23. 密码框验证信息
  24. 操作元素总结以及作业
  25. 排他思想(算法)
  26. 百度换肤效果
  27. 表格隔行变色效果
  28. 表单全选取消全选(上)
  29. 表单全选取消全选(下)
  30. 获取自定义属性值
  31. 剩余内容

第三部分:jQuery 4天

前端JavaScript入门到精通全套js视频教程(基础+应用+进阶)

jQuery是一个优秀的JavaScript代码库。倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理与交互。 jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。

  1. jQuery就是一个js库
  2. 如何使用jQuery
  3. jQuery的各版本及区别
  4. jQuery的入口函数
  5. $是一个函数
  6. dom对象和jQuery对象介绍
  7. dom对象和jQuery对象之间的相互转换
  8. 案例-开关灯
  9. 设置获取文本内容text()
  10. 设置获取样式css()
  11. 基本选择器
  12. 层次选择器
  13. 过滤选择器-隔行变色
  14. 案例-下拉菜单
  15. mouseenter事件和mouseleave事件
  16. 案例-突出展示
  17. 案例-手风琴
  18. 案例-淘宝服饰精品
  19. Class类操作_01
  20. Class类操作02
  21. 案例-tab栏切换
  22. jQuery动画-显示show()隐藏hide()
  23. jQuery动画-滑入slideDown()滑出slideUp()
  24. 案例-动画版下拉菜单
  25. jQuery动画-淡入fadeIn()淡出fadeOut()
  26. 自定义动画animate()
  27. 案例-360开关机动画
  28. 动画队列-以及stop参数的含义
  29. 动态创建元素-html()和$()
  30. 案例-生成表格
  31. jQuery添加节点的几种方式
  32. 剩余内容

第四部分 综合练习2天 购物车综合案例,本地存储加强,todolist本地存储综合案例,常见jquery插件,瀑布流,懒加载,全屏滚动,bootstrap JS插件使用

前端JavaScript入门到精通全套js视频教程(基础+应用+进阶)

  1. 淘宝服饰精品案例
  2. jQuery链式编程
  3. jQuery修改样式css方法
  4. jQuery修改样式操作类
  5. tab栏切换案例.
  6. jQuery类操作和className区别
  7. jQuery显示与隐藏效果
  8. jQuery滑动效果以及事件切换
  9. jQuery停止动画排队stop
  10. jQuery淡入淡出以及突出显示案例
  11. jQuery自定义动画animate方法
  12. 王者荣耀手风琴案例布局分析
  13. 王者荣耀手风琴案例制作
  14. jQuery属性操作
  15. 购物车模块-全选(上)
  16. 购物车模块-全选(下)
  17. jQuery内容文本值
  18. 购物车模块-增减商品数量
  19. 购物车模块-修改商品小计(上)
  20. 购物车模块-修改商品小计(中)
  21. 购物车模块-修改商品小计(下)
  22. jQuery遍历对象each方法
  23. jQuery遍历数据$.each
  24. 购物车模块-计算总件数和总额
  25. 创建、添加、删除元素
  26. 购物车模块-清理购物车
  27. 购物车模块-选中商品添加背景颜色
  28. jQuery尺寸方法
  29. jQuery位置方法
  30. jQuery被卷去头部方法
  31. 剩余内容

关注@IT三宝给你更多知识惊喜~