03_AJAX原理
Day03_AJAX原理知识点自测
以下哪个方法可以把 JS 数据类型转成 JSON 字符串类型?
A. JSON.stringify()
B. JSON.parse()
答案
选择A
以下哪个方法,会延迟一段时间后,再执行函数体,并执行一次就停止?
A. setTimeout(函数体, 毫秒值)
B. setInterval(函数体, 毫秒值)
答案
选择A
下面代码 result 结果是多少?
let obj = {
status: 240
}
const result = obj.status >= 200 && obj.status < 300
A. true
B. 大于
C. 240
D. false
答案
选A
下面代码运行结果是多少?
let result = 'http://www.baidu.com'
result += '?a=10'
result += '&b=20'
A:’http://www.baidu.com‘
B:’?a=10’
C:’&b ...
02_AJAX综合案例
02_AJAX综合案例知识点自测
以下代码运行结果是什么?(考察扩展运算符的使用)
const result = {
name: '老李',
age: 18
}
const obj = {
...result
}
console.log(obj.age)
A:报错
B:18
答案
B正确
什么是事件委托?
A:只能把单击事件委托给父元素绑定
B:可以把能冒泡的事件,委托给已存在的向上的任意标签元素绑定
答案
B正确
事件对象e.target作用是什么?
A:获取到这次触发事件相关的信息
B:获取到这次触发事件目标标签元素
答案
B正确
如果获取绑定在标签上自定义属性的值10?
<div data-code="10">西游记</div>
A:div标签对象.innerHTML
B:div标签对象.dataset.code
C:div标签对象.code
答案
B正确
哪个方法可以判断目标标签是否包含指定的类名?
<div class="my-div title ...
01_Ajax入门
01_Ajax入门知识点自测
如下对象取值的方式哪个正确?
let obj = {
name: '黑马'
}
A: obj.a
B: obj()a
答案
A选项正确
哪个赋值会让浏览器解析成标签显示?
let ul = document.querySelector('#ul')
let str = `<span>我是span标签</span>`
A: ul.innerText = str
B: ul.innerHTML = str
答案
选择B, innerText会把字符串当做普通文本现在在ul标签之间, innerHTML会试着把字符串解析成标签, 如果是普通文本则显示普通文本字符串
哪个是获取输入框值的方式?
let theInput = document.querySelector('#input')
A: theInput.innerHTML
B: theInput.value
答案
答案是B, 表单标签设置或获取值用value属性, 其他标签用innerHTML/innerTe ...
Linux字符集引发的bug
Linux字符集引发的bug在进行服务器迁移时,处理文档的功能出现了一个匪夷所思的bug。处理过的文档中的中文字符都变成了一个个小方框,如下图所示:
由于这个问题影响了在线上环境的用户体验,为了尽量保证服务质量,我紧急切换了该接口的地址到旧服务器,并着手修复这个bug。
分析首先,我们需要分析问题出现的原因。通过观察乱码和正常显示的英文,可以初步推测问题是与中文字符有关。在本地环境没有任何问题,但在服务器上出现了乱码,这让我们可以初步确认是由于Linux中缺少WPS中用到的一些中文字体导致的文档处理后的乱码问题。
处理思路
安装字体文件: 需要在Linux中安装缺失的字体文件。
字体来源: 需要确定字体文件从何处获取。
字体安装与启用: 怎样在Linux中安装字体文件并启用。
Bug处理复制Windows系统字体通常情况下,使用Ubuntu 16.04系统的计算机都安装了双系统,因此可以直接在Ubuntu系统中进行字体复制。如果计算机仅安装了Ubuntu系统,需要找一台安装了Windows系统的电脑将字体复制过来。Windows系统的字体目录通常位于:C:\Windows\Font ...
MySQL百万级数据,如何做分页查询
这篇文章主要介绍了MySQL百万级数据,怎样做分页查询?今天咱们就来聊聊这个话题,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教 —- 摘自脚本之家 (作者:ZNineSun )
MySQL百万级数据,如何做分页查询随着业务的增长,数据库的数据也呈指数级增长,拿订单表为例,之前的订单表每天只有几千个,一个月下来不超过十万。
而现在每天的订单大概就是2w+,目前订单表的数据已经达到了700w。
这带来了各种各样的问题,今天我先从一个小问题开始。
之前所写的代码mysql的分页都是采用的limit方式进行,这种方式固然代码比较简单,但数据量大了之后真的是查的慢。
所以此处涉及到mysql大数据量后的分页查询方法及其优化技巧
方法1:直接使用数据库提供的SQL语句语句样式: MySQL中,可用如下方法:
SELECT` `* ``FROM` `表名称 LIMIT M,N
适应场景:适用于数据量较少的情况(元组百/千级)
原因/缺点:全表扫描,速度会很慢 且有的数据库结果集返回不稳定(如某次返回1,2 ...
java中的Stream流可以替代for循环吗?
Java8的发布是Java历史上的一个重大时刻。Streams 和 Lambda 被引入,它们现在被广泛使用。如果你不知道 Streams,或者从来没有听说过它,那是完全没有问题的。在大多数情况下,循环同样可以满足我们的需要,没有 Streams 也不会遇到任何问题。
那我们为什么需要Streams?它们能取代循环吗?或者比循环更有优势?在本文中,我们将研究代码,比较性能,并看看Streams作为循环的替代品有多好。
1. 代码比较Streams 增加了代码复杂性,因为它们需要类、接口和导入新的包;相比之下,循环天生就是内置的,不需要额外的引入任何东西。这在某些点上是对的,但也不尽然:代码复杂度并不能仅仅看引入几个类、几个包文件来衡量,更重要的是代码的可读性。让我们看一些例子。
具有类型的项目名称列表假设我们有一个项目列表,并且想要特定项目类型的名称列表。使用循环,我们需要编写以下内容:
List<String> getItemNamesOfType(List<Item> items, Item.Type type) {
List<Str ...
SpringBoot 中这样实现分布式锁,才叫优雅!
概述提到分布式锁大家都会想到如下两种:
基于Redisson组件,使用redlock算法实现
基于Apache Curator,利用Zookeeper的临时顺序节点模型实现
今天我们来说说第三种,使用 Spring Integration 实现,也是我个人比较推荐的一种。
Spring Integration在基于Spring的应用程序中实现轻量级消息传递,并支持通过声明适配器与外部系统集成。Spring Integration的主要目标是提供一个简单的模型来构建企业集成解决方案,同时保持关注点的分离,这对于生成可维护,可测试的代码至关重要。我们熟知的 Spring Cloud Stream的底层就是Spring Integration。
官方地址:https://github.com/spring-projects/spring-integration
Spring Integration提供的全局锁目前为如下存储提供了实现:
Gemfire
JDBC
Redis
Zookeeper
它们使用相同的API抽象,这意味着,不论使用哪种存储,你的编码体验是一样的。试想一下你目前是 ...
为什么IDEA不推荐使用@Autowired注解
为什么IDEA不推荐使用@Autowired注解
还记得前段时间面试的时候,突然被问到所有情况下都不推荐使用@Autowired注解吗,突然有点蒙,不知道怎么回答了,所以痛定思痛,好好来分析一下这个问题
@Autowired注解相信每个Spring开发者都不陌生了!
但是当我们使用IDEA写代码的时候,经常会发现@Autowired注解下面是有小黄线的,我们把小鼠标悬停在上面,可以看到这个如下图所示的警告信息:
那为什么IDEA会给出Field injection is not recommended这样的警告呢?
下面带着这样的问题,一起来全面的了解下Spring中的三种注入方式以及他们之间在各方面的优劣。
Spring中的三种依赖注入方式Field Injection@Autowired注解的一大使用场景就是Field Injection。
具体形式如下:
@Controller
public class UserController {
@Autowired
private UserService userService;
}
这种注 ...
分布式任务调度框架-PowerJob
分布式任务调度框架-PowerJob
只会用 xxl-job?更强大的新一代分布式任务调度框架来了!
在微服务系统中,经常会有用到任务调度的场景。比如每天定时同步数据、定时生成业务报表、定期清理日志等。今天给大家推荐一个分布式调度框架,助你你轻松完成任务调度工作!
PowerJob 简介PowerJob是全新一代分布式调度与计算框架,能让你轻松完成任务的调度与繁杂任务的分布式计算。
主要特性:
使用简单:提供前端Web界面,允许开发者可视化地完成调度任务的管理(增、删、改、查)、任务运行状态监控和运行日志查看等功能。
定时策略完善:支持CRON表达式、固定频率、固定延迟和API四种定时调度策略。
执行模式丰富:支持单机、广播、Map、MapReduce四种执行模式,其中Map/MapReduce处理器能使开发者寥寥数行代码便获得集群分布式计算的能力。
DAG工作流支持:支持在线配置任务依赖关系,可视化得对任务进行编排,同时还支持上下游任务间的数据传递
执行器支持广泛:支持Spring Bean、内置/外置Java类、Shell、Python等处理器,应用范围广。 ...
nodejs版本切换工具-nvm
nodejs版本切换工具-nvm
好久不见,别来无恙
最近在开发中,接手了几个vue的前端项目,需要用到node.js环境,但是在有些项目启动的时候不得不切换我node的版本,每次下载卸载很麻烦,这里就推荐一个node的包版本管理工具 nvm
介绍
Node Version Manager (NVM) 是一个用于管理 Node.js 版本的工具,它允许你在同一台计算机上轻松切换和管理不同的 Node.js 版本
设计者为按用户安装并按 shell 调用。nvm适用于任何兼容 POSIX 的 shell(sh、dash、ksh、zsh、bash),特别是在以下平台上:unix、macOS 和 windows WSL
下载安装这里只讲windows的下载安装,若需要其他版本,请移步nvm的github仓库。
下载
下载 NVM for Windows 安装器(nvm-setup.zip):https://github.com/coreybutler/nvm-windows/releases
解压下载的安装器,并运行 nvm-setup.exe。
安装向导将引导你完成安装过程。在安装 ...