tag 标签: 前端

相关博文
  • 热度 2
    2022-4-9 21:17
    3024 次阅读|
    0 个评论
    在频谱仪基础(二)讲述了高低中频的选择,对于9kHz 到 7GHz 信号前端处理,我们需要分段进行处理, 9kHz 到 3GHz 信号采用高中频的方式, 3GHz 到7 GHz采用低中频的方式直接将信号频谱搬移到低中频。 1.9kHz 到 3GHz 信号前端处理 在图 1 所示中,第一个 IF 设置为 3476.4MHz 。将输入频率范围从 9kHz 到 3GHz 的输入信号通过上变频转换到频率为 3476.4MHz ,所以 LO 信号 ⑤ 必须在 3476.40MHz~6476.4MHz 的频率范围内进行扫频或者调频。根据公式,镜像频率范围为 6952.809MHz~9952.8MHz 。 图1 第一级混频电路 对于 9kHz~3GHz 的第一级混频, LO 信号 ⑤ 频率范围 3476.40MHz~6476.4MHz 可变,同时根据傅里叶变换可知,两个信号时域相乘,频域是相卷积,即 LO 信号上任何的干扰都会毫无保留的出现在输出频谱上,所以 LO 信号不仅仅需要超宽的频率范围,也需要相对低的相位噪声以及谐波。为满足这些指标,实现 LO 的方式有三种: YIG 振荡器、 VCO (压控振荡器)、 PLL+VCO 。 1. YIG 振荡器:通常被用作 LO ,其利用磁场来改变振荡器的频率; 2. VCO (压控振荡器): VCO 的特点是有一个更小的可变范围与 YIG 振荡器相比, VCO 可以比 YIG 振荡器调谐快得多。 3. PLL+VCO : PLL 利用外部输入的参考信号控制环路内部振荡信号的频率和相位,与 VCO 配合输出更宽 LO 频率。 在频谱仪中,最为常用就是 PLL+VCO 构架产生 LO 信号。为了提高频谱的频率精度,本振 LO 采用 PLL 技术,通过一个锁相环( PLL )将输入信号锁定到一个参考信号上(系统的参考时钟)。但是采用 PLL 的方式,输出信号并不是连续可调,而是步进调节设置,同时步进调节设置依赖于频谱仪设置的分辨率带宽( RBW ),因此较小分辨率带宽( RBW )需要 PLL 较小的调谐步进。否则,输出信号不能覆盖整个扫频范围,而且会造成功率误差。如图 2 所示,左图表示, PLL 的步进调节远大于分辨率带宽,这导致在扫频时,步进跳转过大导致输入信号混频后没有进入到中频滤波器的带内,造成信号的丢失。右图表示, PLL 的步进调节大于分辨率带宽,这导致在扫频时,步进跳转不合理导致输入信号混频后没有进入到中频滤波器的通带内,造成信号的功率误差,为了避免以上两种错误,其 PLL 的设置的步长远低于分辨率( RBW ),在实际设计, PLL 的调节步进应该小于 0.1 · RBW ( 1/10 ),比如频谱仪设置的 RBW 为 10kHz ,那么 LO 输出的频率步进应该是小于 1KHz 的,但是在设计 LO 时,可以考虑 LO 电路的步进根据 RBW 设置进行分段调节。 图 2 PLL 步进和分辨率带宽 对于 LO 的参考信号,通常由一个温度控制的晶体振荡器 (TCXO) 产生。为了提高频率精度和长期性稳定性, (OCXO) 振荡器可作为大多数频谱仪的参考时钟。同时为了保持与其他测量仪器同步以及板内源同步,参考信号 ( 通常采用 10MHz) 可由输入连接器( BNC 接口)输入或是采用板内的参考时钟。需要与其他测量仪器同步测试时,采用外部参考时钟和外部触发测量即可。 经过了第一级混频之后, IF1 中频输出为 3476.4MHz ,对于这个信号直接采集,所要付出的代价太大,所以我们需要将 IF1 中频信号再通过下变频至低频 IF2 进行采集,如 10.7MHz 、 20.4MHz 。这样的就减少了对 ADC 的采样率的要求。如图 3 所示,试想一下,如果直接将 IF1 中频 3476.4MHz 下变频至 20.4MHz, 是否可以。理论上是可以实现的,此时 LO 频率采用 3456MHz ,那么 IF2=20.4MHz ,镜像频率为 3435.6MHz ,这里就会出现一个问题, IF1 和镜像信号频率之差只有 2*20.4=40.8MHz ,为了抑制镜像的干扰,所需要的 BPF (带通滤波器)的带宽就非常窄、中心频率高,同时带外对镜像抑制又要非常的强,实际设计实现是比较复杂的。同时由于第一级 Mixer 的各个端口的隔离度是有限的,那么 RF 和 LO 是会泄露到 IF1 中的,所以直接下变频至 20.4MHz, 对中频滤波器 ⑧ 设计提出了挑战。 图3 二级下变频至第中频 IF2 由于 IF1=3476.4MHz 信号频率高,如果 IF2=20.4MHz, 需要一个极复杂的滤波器来完成对镜像信号的抑制,中频滤波器 ⑧ 需要非常陡峭的带外抑制。如图 4 所示,因此,将 IF1 下变频到 IF2 时, IF2 可以采用相对高的频率,如 404.4MHz 。若中频 IF2=404.4MHz ,一个固定的 LO 信号(二级本振) 为 3072MHz ,镜像频率为 2667.6MHz 。那么,镜像抑制的中频滤波器 ⑧ 就很容易实现了。同时带通滤波器的带宽足够大, IF1 信号不会受损 (即使是对于最大分辨率的带宽)。同时减少总噪声,在二次变频时,对输入信号被放大 ⑦ ,放大器的增益可以根据第二级 Mixer 的 -1dB 压缩点合理设置。 图4 9KHz~3GHz 链路 2.3GHz 到 7GHz 信号前端处理 经过低频段链路的分析,对于高频段分析也具备了一定的基础, 3GHz~7GHz 频率段,可以直接将输入信号直接转换为固定低 IF ,使用带通滤波器抑制镜像干扰,此时只要本地振荡器频率范围满足下变频要求即可。如图 5 所示, 3GHz 到 7GHz 信号前端链路。 图 5 3G Hz 到 7 GHz 信号前端链路 在链路中,频谱分析仪的频率范围是从 3GHz 到 7GHz 。经过衰减器后,输入信号为由双工器 (19) 将输入信号分成 9kHz 至 3GHz 和 3GHz 的到 7GHz, 并应用于相应的射频前端。在高频部分,信号通过 YIG 滤波器之后进入到一级混频器当中, YIG 滤波器的中心频率对应是此时输入信号的频率,比如输入 4.5GHz, 那么该 YIG 滤波器的中心为 4.5GHz, 同时 YIG 滤波器除了中心频率可调以外,其还具有非常窄的带宽。前文中,假设直接下变频至低中频 20.4MHz, 那么对于混频器输入端的带通滤波器而言,滤波器结构比较复杂。同样的对于高频段的链路,直接下变频至 20.4MHz, 依然会面临这个问题, YIG 无法提供如此窄的带宽。所以,高频段 IF 可以采用相对高的频率,如 404.4MHz 。这样 YIG 滤波器能够满足抑制镜像的功能。 所以中频可以采用 404.4MHz ,此时 LO 的频率范围为: 2595.6 MHz~ 6595.6 MHz或者 3404.4 MHz~7404.4 MHz 如果通过软件来完成对两种转换之间切换,就可以在只用一个 LO 既可以完成频率的转换,此时 LO 频率范围为: 3404.4MHz ~6595.6MHz ,可以 9KHz~3GHz 频率段共用本振。但是输入的信号频率为 3GHz~13.6GHz 时,本振 LO 信号频率范围为 2595.6 MHz~ 13.1954 GHz ( ,就不能使用低频段的本振。 最终转换为 404.4 MHz 中频信号经过中频放大器 (23) 并通过模拟开关切换到低频路径上完成高频段下变频。 通过面前的链路的分析,对于 输入的信号频率为 3GHz~13.6GHz 时, LO 频率范围为 2595.6 MHz~ 13.1954 GHz, 直接由 PLL+VCO 输出 LO 信号代价太大。特别是当频谱仪的高达 30GHz 或是更高的 40GHz 带宽时, PLL+VCO 直接输出 LO 代价太大。但是可以利用倍频器和器件的非线性来获取高频率的本振信号。 采用倍频器的方式,就是 PLL+VCO 输出的信号进行倍频,比如 2 倍、 4 倍,即可得到高的 LO 频率了。采用倍频器,可以获得最小的转换损耗,从而保持频谱分析仪的低噪声系数,但是除了乘法器 (22) 之外,还需要滤波器来抑制乘法后的次谐波,同时混频器的 LO 输入端必须提供足够高的 LO 电平,因此所需的放大器必须是高宽带的、低失真的。 采用器件的非线性特性时,就是利用器件的非线性产生所需要的谐波,比如 2 次谐波。采用器件的非线性特性时,通过谐波混合的转换更容易实现,但意味着更高的转换损耗。需要在较低频率范围内的 LO 信号,该信号必须以高电平施加到混频器。由于混频器的非线性和高 LO 电平,只要谐波具有功率就可以用于频率转换。 以上就是对高 LO 获取的方式,最常用的是第一种方式,代价最小。但是这两个方式在实践中的使用取决于价格等级频谱仪。同时这两种方法的组合是可能的。当然在更高频率时,也可以使用外本振。
相关资源
  • 所需E币: 0
    时间: 2024-5-21 11:04
    大小: 2.9KB
    上传者: 开心就很好了
    一、nextjs基本介绍Next.js是一个基于React的轻量级框架,用于构建React应用程序。它在React的基础上提供了一些增强功能,包括服务器渲染(SSR)、静态生成(SSG)、路由等。Next.js的目标是简化React应用程序的开发流程,并提供更好的性能和开发体验。Nextjs是一个使用react作为前端框架底层的支持SSR(请求时渲染)、SSG(构建时渲染)等技术的全栈框架,在2022年的服务端框架中排名第一。它的优点非常明显,既支持react的虚拟dom形式快捷完成开发,又支持访问即可看到完整内容,友好的SEO/浏览器直出形式。结合了静态分离和服务器渲染的双重优势。同时在服务端也非常容易做缓存相关的处理,甚至是做一些中间件的开发,简直是前端开发的神兵利器。当前缺点也有一些,包括跳转的时候会重复下载内容,开发的时候需要一些服务端开发能力,甚至是部署的时候没点本事都部署不明白。以上这些都是Nextjs的内容,作为一个合格的开发者,研究未来趋势的开发能力,使用更有成长潜力的技术,都是我辈需要实践的真理。二、RedwoodJS和NextJS的相似之处这两个框架的设计都使开发人员能够轻松创建快速、安全和可扩展的web应用程序。这两个框架都使用ReactJS库来构建用户界面(UI)。这意味着熟悉ReactJS库的开发人员会发现使用这两种框架中的任何一种构建应用程序都很容易。这两个框架都支持服务器端渲染,允许开发人员在服务器而不是浏览器上渲染网页,从而提高web应用程序的性能。此外,RedwoodJS和NextJS支持自动代码分割,允许开发人员将他们的web应用程序分割成更小的块,可以根据需要加载。三、Next.js主要解决了以下问题:SEO和首屏加载性能:传统的客户端渲染的React应用可能不利于搜索引擎爬虫的抓取,且首次加载时间较长。Next.js提供服务端渲染作为默认行为,这意味着页面在服务器上被渲染为HTML,然后发送给客户端。这样做可以显著提升首屏加载速度,并对搜索引擎优化友好。开发效率:在使用React开发大型应用时,开发者通常需要配置路由、代码拆分、构建优化等。Next.js通过约定大于配置的方式,减少了这些常见任务的手动设置,提供了简易的文件系统路由、自动的代码拆分和热加载,提高了开发效率。构建和部署:Next.js提供现成的构建系统和对持续集成的优化,使得将应用从开发阶段迁移到生产变得简单。此外,与Vercel平台的无缝集成也让部署变得异常轻松。灵活的数据获取策略:Next.js提供了灵活的数据获取方法,如getStaticProps和getServerSideProps,使得开发者可以根据页面的需求选择不同的数据预渲染策略,例如静态生成或服务器端渲染。无需额外设置的TypeScript支持:Next.js从一开始就考虑了对TypeScript的支持,让开发者能够享受到强类型语言带来的好处,而无需复杂的配置。API路由:Next.js允许开发者在同一个项目中构建前端页面和API接口,简化了全栈应用的开发过程。生态系统和社区支持:Next.js随着时间的推移建立起了一个健康的插件生态系统,并且得到了强大的社区支持,这为开发者提供了各种资源和第三方库的集成。总之,Next.js的出现是为了简化和优化基于React的应用开发流程,同时提供了高性能和SEO友好的解决方案,它代表了当代Web应用开发的一个重要趋势。四、主要功能:路由:基于文件系统的路由器构建在服务器组件之上,支持布局、嵌套路由、加载状态、错误处理等。渲染:使用客户端和服务器组件进行客户端和服务器端渲染。使用Next.js在服务器上进一步优化静态和动态渲染。在Edge和Node.js运行时上进行流式传输。数据获取:通过服务器组件中的async/await简化数据获取,以及用于请求记忆、数据缓存和重新验证的扩展获取API。样式:支持您首选的样式方法,包括CSS模块、TailwindCSS和CSS-in-JS优化:图像、字体和脚本优化,以改善应用程序的核心网络生命和用户体验。TypeScript:改进了对TypeScript的支持,具有更好的类型检查和更高效的编译,以及自定义TypeScript插件和类型检查器。五、Next.js可以带给我们什么?Next.js是一个Reactweb应用框架,这是官方对自己的定义,然后它主要做的事情有以下几点:1、完善的工程化机制2、良好的开发和构建性能3、智能文件路由系统4、多种渲染模式来保证页面性能体验5、可扩展配置6、提供其他多方面性能优化方案7、提供性能数据,让开发者更好的分析性能。8、提供的其他常用功能或者扩展,比如使用mdx来编写页面的功能等等
  • 所需E币: 0
    时间: 2024-4-22 17:00
    大小: 2.4KB
    一.什么是微前端“微前端架构”就是构建基于微服务的前端应用架构。其思想是将前端应用切分为一系列可以单独部署的松耦合的应用,然后将这些应用组装起来创建单个面向用户的应用程序。二.微前端的优势降低代码耦合独立开发、独立部署增量升级:微前端是一种非常好的实施渐进式重构的手段和策略独立运行时,每个微应用之间状态隔离,运行时状态不共享团队可以按照业务垂直拆分更高效三、微前端是一种前端架构模式,它将Web应用程序拆分为一组小型、可独立开发和部署的模块,每个模块可以由不同的团队开发和维护。这种模块化的架构可以帮助开发团队降低Web应用程序的规模和复杂度,从而提高应用程序的可维护性和可扩展性。微前端的概念最早由ThoughtWorks公司的技术总监CamJackson在2016年提出。他认为,微前端可以帮助团队将大型Web应用程序拆分为小型模块,从而更好地满足不同业务需求,提高应用程序的可维护性和可扩展性。自此之后,微前端逐渐成为了一种前端技术趋势,得到了越来越多的关注和支持。微前端的背景源于大型Web应用程序的发展和演进。随着Web应用程序的规模和复杂度的不断增加,前端开发团队面临越来越多的挑战,例如开发和维护难度大、代码耦合度高、性能问题等等。微前端通过将Web应用程序拆分为小型、可独立开发和部署的模块,从而降低了这些挑战的难度,提高了Web应用程序的可维护性和可扩展性。四、微前端的挑战包括:技术复杂度:微前端需要使用一些新的技术和工具来实现模块化开发、模块间通信和集成等功能,需要开发团队具备一定的技术实力和经验。项目规模限制:微前端适用于大型Web应用程序,但对于小型应用程序,可能会带来过度的复杂度和不必要的开销。性能问题:微前端需要在运行时动态加载模块,可能会影响应用程序的性能和响应速度,需要通过一些优化措施来解决。跨域问题:微前端需要在不同的域名下部署不同的模块,可能会带来跨域问题,需要通过一些跨域解决方案来解决。五、micro模块micro-app是京东零售推出的一款微前端框架,它基于类WebComponent进行渲染,从组件化的思维实现微前端,旨在降低上手难度、提升工作效率。它是目前接入微前端成本最低的框架,并且提供了JS沙箱、样式隔离、元素隔离、预加载、资源地址补全、插件系统、数据通信等一系列完善的功能。MicroApp借鉴了WebComponent的思想,通过CustomElement结合自定义的ShadowDom,将微前端封装成一个类WebComponent组件,实现微前端的组件化渲染。在此基础上,通过实现JS隔离、样式隔离、路由隔离,降低子应用的接入成本,子应用只需设置允许跨域请求,不需要改动任何代码即可接入微前端,使用方式和iframe几乎一致,但却没有iframe存在的问题。用于给应用赋能微前端,使其成为主应用,能够内部接入子应用。入口index.js:用于和主应用初始化接入;appConfigs.js:用于配置要接入子应用的相关信息;commonApi.js:公用的接口函数,透传给子应用使用;appTemplate.vue:子应用展示容器,类似于iframe效果;router.js:主应用中处理过后的子应用路由地址,最后合并接入到主应用路由文件。六、集成与部署策略在微前端架构中,集成与部署策略是至关重要的。以下是一些常见的集成与部署策略:构建时集成:在主应用的构建过程中,将微应用的代码打包到主应用的代码中。这种方式适用于微应用较少且更新不频繁的情况。运行时集成:主应用在运行时动态加载微应用的代码。这种方式可以实现微应用的独立部署和按需加载,适用于微应用较多且更新频繁的情况。独立部署:每个微应用都可以独立部署,主应用通过配置来管理微应用的版本和加载地址。这种方式可以实现微应用的并行开发和持续集成/持续部署(CI/CD),提高开发效率。容器化部署:使用Docker等容器化技术将每个微应用打包成容器进行部署。这种方式可以实现微应用的环境隔离和弹性扩展。
  • 所需E币: 0
    时间: 2024-3-22 14:24
    大小: 1.99KB
    Spring能做什么Spring具有哪些能力呢?这点在Spring的官网上有比较详情的描述,我们可以在Spring的项目里看到Spring的生态涵盖了web开发、数据访问、安全控制、分布式、消息服务、移动开发、批处理等等SpringBoot优点SpringBoot的优点我可以在https://spring.io/projects/spring-boot这里看到,下面我把优点复制过来了如下:●Createstand-aloneSpringapplications○创建独立Spring应用●EmbedTomcat,JettyorUndertowdirectly(noneedtodeployWARfiles)○内嵌web服务器●Provideopinionated‘starter’dependenciestosimplifyyourbuildconfiguration○自动starter依赖,简化构建配置●AutomaticallyconfigureSpringand3rdpartylibrarieswheneverpossible○自动配置Spring以及第三方功能●Provideproduction-readyfeaturessuchasmetrics,healthchecks,andexternalizedconfiguration○提供生产级别的监控、健康检查及外部化配置●AbsolutelynocodegenerationandnorequirementforXMLconfiguration○无代码生成、无需编写XMLSpringBoot是整合Spring技术栈的一站式框架SpringBoot是简化Spring技术栈的快速开发脚手架在SpringBoot项目中,正常来说是不存在XML配置,这是因为SpringBoot不推荐使用XML,注意,排不支持,SpringBoot推荐开发者使用Java配置来搭建框架,SpringBoot中,大量的自动化配置都是通过Java配置来实现的,这一套实现方案,我们也可以自己做,即自己也可以使用纯Java来搭建一个SSM环境,即在项目中,不存在任何XML配置,包括web.xml。下面我们开始代码实战:创建maven工程引入依赖<parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>2.3.4.RELEASE</version>  </parent>  <dependencies>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>    </dependency>  </dependencies>创建主程序/** *主程序类 *@SpringBootApplication:这是一个SpringBoot应用 */@SpringBootApplicationpublicclassMainApplication{  publicstaticvoidmain(String[]args){    SpringApplication.run(MainApplication.class,args);  }}启动类,启动就可以了packagecom.urthink.upfs.springbootdemo; importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplicationpublicclassSpringBootDemoApplication{   publicstaticvoidmain(String[]args){    SpringApplication.run(SpringBootDemoApplication.class,args);  } }我们将这个依赖拷贝到我们自己的项目pom文件里,粘贴后的pom文件如下<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>com.atguigu</groupId>  <artifactId>boot-01-helloworld</artifactId>  <version>1.0-SNAPSHOT</version>  <parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>2.3.4.RELEASE</version>  </parent><dependencies>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>    </dependency>  </dependencies></project>
  • 所需E币: 0
    时间: 2024-3-22 11:17
    大小: 2.63KB
    上传者: 开心就很好了
    SpringBoot一直是开发者比较青睐的一款轻量级框架,他不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。现在很多Java系的软件开发都是基于SpringBoot的,这就要求开发人员都要掌握基于SpringBoot的开发。由于SpringBoot体系非常庞大,导致很多人并不能完全掌握如何使用,尤其是涉及分布式相关的开发时,如何和其他框架整合更是让很多程序员无从下手。在此,我给大家整理了几个优质SpringBoot开源项目给大家参考,希望能够帮助到正在学习SpringBoot的小伙伴!小伙伴简历中不知道写什么项目的或者项目没有亮点的,我只能帮你们到这了!随着技术框架的不断更新,一些公司摒弃了原先的技术框架模式。而springboot慢慢取代了原有的ssm框架开发。为什么选择springboot呢?配置简单不需要编写太多的xml;基于spring构建,容易上手;独立运行不依赖于容器;内置服务器tomcat不需要打war包;提供maven极简配置;对于各种框架有很好的集成;为SpringCloud微服务奠定基础,使微服务构建变得简单;下面让我们使用idea一起搭建完整版的SpringBoot项目:首先,确定项目结构现在后端开发都是基于springboot的web项目,web项目一般都是使用MVC的模式,所以这里也采用类似的模式。在项目maven结构组成上,采用父子项目,也就是一个主项目下有多个子module,分为下面几个,p-admin   p-web--》负责项目启动   p-facade --》控制层,写controller   p-service--》服务层,具体的业务处理   p-dao--》持久化层,负责和数据库打交道   p-common--》公共层,util类\入参、出参等   p-api--》提供给第三方的接口大体的项目结构给出来了,下面看子项目间的依赖关系哈,  p-web依赖于p-service、p-common  p-service依赖于p-dao、p-common  p-api依赖于p-common其他的依赖第三方的库暂时不看,下面再说。接下来就可以进行实际操作创建项目了。接着,创建项目创建父项目(p-admin)这里使用maven的父子项目结构,父项目是这样创建的,在idea中file-->new-->project出现下面的界面,直接next就好一、mallmall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。二、Cloud-Platform(微服务的)Cloud-Platform是国内首个基于SpringCloud微服务化开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。核心技术采用SpringBoot2.1.2以及SpringCloud(Greenwich.RELEASE)相关核心组件,采用Nacos注册和配置中心,集成流量卫兵Sentinel,前端采用vue-element-admin组件。三、微人事微人事是一个前后端分离的人力资源管理系统,项目采用SpringBoot+Vue开发,项目加入常见的企业级应用所涉及到的技术点,例如Redis、RabbitMQ等。后端技术栈:SpringBoot、SpringSecurity、MyBatis、MySQL、Redis、RabbitMQ、SpringCache、WebSocket前端技术栈Vue、ElementUI、axios、vue-router、Vuex、WebSocket、vue-cli4四、web-flashweb-flash是一个基于SpringBoot和Vue.js的web系统,包含了基于element搭建的后台管理系统和基于vux搭建的手机端h5站点web-flash具备后台管理类系统的通用的基础功能,而且提供了基于ideaintellij的的代码生成插件,可以一键生成前后端页面。核心框架:SpringBoot数据库层:Springdatajpa数据库连接池:Druid缓存:Ehcache前端:基于Vue.js的Element(后端)和vux(手机端)工作流:activiti
  • 所需E币: 0
    时间: 2023-12-18 10:38
    大小: 3.46KB
    上传者: 开心就很好了
    今天给大家讲讲关于SpringBoot2仿B站的一个项目,大家都知道,如今短视频成为了风口中的风口,但市场上极度缺乏视频业务开发的相关技术人才。本文将结合SpringCloud微服务架构+Springboot+JDK+Maven+VUE等技术,实现B站核心功能(视频流、弹幕流)+百万量级的高性能优化,从而帮助大家提升前端加后端技术水平,掌握架构设计思维及丰富解决方案。实现步骤使用Vue3提供的Provide/Inject组合,通过provide在App.vue中提供当前语言环境localeLanguage,代码片段如下所示://App.vue  <scriptsetuplang="ts">  importzhCnfrom'element-plus/lib/locale/lang/zh-cn'  importenfrom'element-plus/lib/locale/lang/en'  import{ref,provide}from'vue'  //显示引入provide    constlocale=ref(zhCn)  constlocaleLanguage=ref('')  functionchangeLang(language:any){   locale.value=language   localeLanguage.value=language.name  }    //提供当前语言环境localeLanguage  provide('localeLanguage',localeLanguage)    </script>然后再通过inject将其注入到home页面,将获取到的localeLanguage传入自定义的t函数中,代码片段如下所示://home/index.vue  <scriptsetuplang="ts">  import{useRoute}from'vue-router'  import{inject}from'vue' //显示引入inject  import{t}from'../../utils/internationalization'    //通过inject将localeLanguage注入,作为t函数的参数  constlocaleLanguage:string=inject('localeLanguage')||''  constroute=useRoute()  console.log(route.params)  constvalue1=''  </script>    <template>   <div>{{t(localeLanguage).home}}---{{t(localeLanguage).mine}}</div>   <el-date-pickerv-model="value1"type="date"placeholder="Pickaday"></el-date-picker>  </template>封装一个openStore(),使用indexedDB.open()方法返回一个IDBRequest对象,接着将这个对象上的三个事件分别放置进入:onsuccess、onerror、onupgradeneeded。onsuccess表示打开数据库成功的事件。onerror表示打开数据库失败的事件。onupgradeneeded是数据库升级事件,如果版本号更新,并且大于之前的版本号则进行数据库升级,该事件回调里面,会创建我们所需要的对象仓库,类似于关系型数据库中的表的概念。exportdefaultclassDB{ privatedbName:string//数据库名称 constructor(dbName:string){  this.dbName=dbName } //打开数据库 publicopenStore(storeName:string,keyPath:string,indexs?:Array<string>){  constrequest=window.indexedDB.open(this.dbName,2)  request.onsuccess=(event)=>{   console.log('数据库打开成功')   console.log(event)  }  request.onerror=(event)=>{   console.log('数据库打开失败')   console.log(event)  }  request.onupgradeneeded=(event)=>{   console.log('数据库升级成功')   const{result}:any=event.target   conststore=result.createObjectStore(storeName,{autoIncrement:true,keyPath})   if(indexs&&indexs.length>0){    indexs.map((v:string)=>{     store.createIndex(v,v,{unique:true})    })   }   store.transaction.oncomplete=(event:any)=>{    console.log('创建对象仓库成功')   }   console.log(event)  } }}Promise包装异步事务为了更好的获取indexedD事务中的返回结果,我们使用promise来包装一下上一小节indexedDB.ts中定义的几个方法:openStore、updateItem、deleteItem、getList、getItem。下面代码片段为getList() //查询所有数据 getList(storeName:string){  conststore=this.db.transaction(storeName).objectStore(storeName)  constrequest=store.getAll()  returnnewPromise((resolve,reject)=>{   request.onsuccess=(event:any)=>{    console.log('查询所有数据成功')    console.log(event.target.result)    resolve(event.target.result)   }   request.onerror=(event:any)=>{    console.log('查询所有数据失败')    console.log(event)    reject(event)   }  }) }使用@include指令来引入定义好的样式函数,该函数的三个参数可以根据传入的值来对flex布局进行自定义,默认值为:column、center、right,在footerCommon.scss中我们重新自定义了该样式函数,分别传入row、space-between、flex-start,代码片段如下://footerCommon.scss.common-footer{  border-top:1pxsolidrgb(235,235,235); .footer{  @includemain-wrapper;  @includelayout(row,space-between,flex-start);  padding:20px0;  li{   @includelayout;   h4{    font-weight:bold;   }   a{    margin-bottom:10px;    color:rgb(72,72,72);    text-decoration:none;    &:hover{     text-decoration:underline;    }   }  } }}getter类似与Vue中的computed计算属性,它的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算getters里可以处理一些array、object的查询、过滤、遍历、重构或者做一些字符拼接的操作,方便直接生成一些可以直接使用的数据。如下代码片段展示了如何在getter中进行过滤查询:exportconststore=createStore({   state:{   todos:[  //定义一个对象数组   {   id:1,   done:true   },   {   id:2,   done:false   }   ]   }   getters:{   doneTodosCount(){ //查询已完成的个数   returnstore.state.todos.filter(todo=>todo.done).length //返回值:1   }   }  })通过环境变量区分server.js中的一些代码片段,因为有些代码需要运行在开发环境,而有些代码需要运行在生产环境。本小节在server.js中一共对3个地方进行了环境区分,代码片段如下//server.jsif(!isProd){ //1.读取index.html template=fs.readFileSync(  path.resolve(__dirname,'index.html'),  'utf-8' ) //2.应用ViteHTML转换。这将会注入ViteHMR客户端, //  同时也会从Vite插件应用HTML转换。 //  例如:@vitejs/plugin-react-refresh中的globalpreambles template=awaitvite.transformIndexHtml(url,template) //3.加载服务器入口。vite.ssrLoadModule将自动转换 //  你的ESM源码使之可以在Node.js中运行!无需打包 //  并提供类似HMR的根据情况随时失效。 render=(awaitvite.ssrLoadModule('/src/entry-server.ts')).render}else{ //1.读取index.html template=fs.readFileSync(  path.resolve(__dirname,'dist/client/index.html'),  'utf-8' ) //3.加载服务器入口 render=require('./dist/server/entry-server.ts').render}
  • 所需E币: 0
    时间: 2023-10-8 09:20
    大小: 1.6KB
    上传者: huangyasir1990
    前端必学40个精选案例实战一课吃透HTML5+CSS3+JS教程下载,47章全,2023年9月完结!HTML5是构建Web内容的一种语言描述方式。HTML5是互联网的下一代标准,是构建以及呈现互联网内容的一种语言方式,被认为是互联网的核心技术之一。HTML产生于1990年,1997年HTML4成为互联网标准,并广泛应用于互联网应用的开发。HTML5是Web中核心语言HTML的规范,用户使用任何手段进行网页浏览时看到的内容原本都是HTML格式的,在浏览器中通过一些技术处理将其转换成为了可识别的信息。HTML5在从前HTML4.01的基础上进行了一定的改进,虽然技术人员在开发过程中可能不会将这些新技术投入应用,但是对于该种技术的新特性,网站开发技术人员是必须要有所了解的。HTML5-新特性HTML5的一些最有趣的新特性:新的语义元素,比如<header>,<footer>,<article>,and<section>。新的表单控件,比如数字、日期、时间、日历和滑块。强大的图像支持(借由<canvas>和<svg>)强大的多媒体支持(借由<video>和<audio>)强大的新API,比如用本地存储取代cookie。HTML是一种标记语言,5代表版本号,现在已经是第五个版本了。通过一系列标签可以将网络上的文档格式统一,使分散的互联网资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。超文本是一种组织信息的方式,它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。2.作用:前端领域,搭配css和js设计网页。3.HTML5遵循的标准:W3C标准:                1)结构化标准语言                2)表现标准语言                3)行为标准<metaname="keywords"content="相关词汇">   //只要在浏览器上搜索相关词汇就能找到该网页<metaname="description"content="描述上面名词的作用">注释:<!---->             //ctrl+/<!DOCTYPEhtml>//表示浏览器的使用规范,一般默认都是html的规范
  • 所需E币: 0
    时间: 2023-10-8 09:34
    大小: 1.85KB
    上传者: 开心就很好了
    【2023最新】前端必学40个精选案例实战一课吃透HTML5+CSS3+JS教程下载CSS3是CSS(层叠样式表)技术的升级版本,于1999年开始制订,2001年5月23日W3C完成了CSS3的工作草案,主要包括盒子模型、列表模块、超链接方式、语言模块、背景和边框、文字特效、多栏布局等模块。CSS演进的一个主要变化就是W3C决定将CSS3分成一系列模块。浏览器厂商按CSS节奏快速创新,因此通过采用模块方法,CSS3规范里的元素能以不同速度向前发展,因为不同的浏览器厂商只支持给定特性。但不同浏览器在不同时间支持不同特性,这也让跨浏览器开发变得复杂1-1、基本概念层叠样式表(CascadingStyleSheets)是一种用来表现HTML或XML等文件样式的计算机语言CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。CSS能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力1-2、发展历程CSS1.0:网页基本样式CSS2.0:DIV(块)+CSS,提出HTML与CSS结构分离的思想,网页变得简单,利于SEOCSS2.1:浮动,定位CSS3.0:圆角,阴影,动画…浏览器兼容性CSS全称为层叠样式表,它主要是用于定义HTML内容在浏览器内的显示样式,如文字大小、颜色、字体加粗等。使用CSS样式的一个好处是通过定义某个样式,可以让不同网页位置的文字有着统一的字体、字号或者颜色等。CSS代码语法css样式由选择器和声明组成,而声明又由属性和值组成选择器{属性:值}例如:p{color:red;}选择器,指明网页中要应用样式规则的元素,如本例中是网页中所有的段<p>的文字将变成蓝色,而其他的元素不会受到影响。声明:在{}中的的就是声明,属性和值之间用英文冒号“:”分隔。当有多条声明时,中间可以英文分号“;”分隔。CSS代码插入从CSS样式代码插入的形式来看可以分为内联式、嵌入式和外部式三种。内联式就是把css代码直接写在现有的HTML标签中,如下面代码:<pstyle="color:red">这里文字是红色。</p>嵌入式就是把css样式代码写在<style>...</style>标签之间。外部式外部式css样式就是把css代码写一个单独的外部文件中,这个css样式文件以“.css”为扩展名,在<head>内使用<link>标签将css样式文件链接到HTML文件内,如下面代码:<linkhref="base.css"rel="stylesheet"type="text/css"/>
  • 所需E币: 0
    时间: 2023-6-6 12:26
    大小: 2.34KB
    上传者: 开心就很好了
    今天给大家分享一套WebGL/Three.js视频教程——《WebGL/Three.js前端高薪3D可视化》,又名:《Three.js/WebGL3D可视化系统课程》,课程持续升级更新中,2023年6月升级版最新32章,提供配套的源码下载!《WebGL/Three.js前端高薪3D可视化》是目前全网最全的一套关于WebGL/Three.js的视频教程,一共700多课时,涉及众多实战案例,比如智慧城市,产品720展示(轿车、手机),收费站,物联网粮仓,大屏3D地图可视化,大屏3D地球可视化,WebGPU等内容。《WebGL/Three.js前端高薪3D可视化》,又名:《Three.js/WebGL3D可视化系统课程》,内容巨多!(入门+中级+高阶+案例),全网除了本课程,很少有课程提供那么多高级进阶的案例或知识讲解,这意味着,初学者除了入门学习,还可以长期进阶学习,已经入门的可以拿来高级进阶。《WebGL/Three.js前端高薪3D可视化》又名:《Three.js/WebGL3D可视化系统课程》课程包含大量经典前沿的可视化项目,从基础入门到深入讲解,我们致力于做一套Web3D系统的课程,讲师在该专业有多年的经验,是国内最早一批的教授Three.js+WebGL网络课程的讲师,并不断跟随该行业的发展更新自身技术与教程.不同于那些见缝插针,多会而不精的技术商人,老师始终专注于3D的行业动向,正所谓师者,传道受业解惑者也.期待与大家共同进步,-起面向更好的未来。WebGL(全写WebGraphicsLibrary)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGLES2.0结合在一起,通过增加OpenGLES2.0的一个JavaScript绑定,WebGL可以为HTML5Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏等等Three.js是一款运行在浏览器中的3D引擎,你可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象。你可以在它的主页上看到许多精彩的演示。不过,这款引擎还处在比较不成熟的开发阶段,其不够丰富的API以及匮乏的文档增加了初学者的学习难度(尤其是文档的匮乏)three.js的代码托管在github上面。课程大纲:章节1、课程部分3D案例展示章节2、Web3D生态和如何学习章节3、【Threejs教程】1.快速入门(2023年1月新版本)章节4、【Threejs教程】2.几何体BufferGeometry顶点章节5、【Threejs教程】3.模型对象、材质章节6、【Threejs教程】4.层级模型章节7、【Threejs教程】5.几何顶点UV坐标、纹理贴图章节8、【Threejs教程】6.加载外部三维模型(gltf)章节9、【Threejs教程】7.PBR材质与纹理贴图章节10、【Threejs教程】8.渲染器和前端UI交互界面章节11、【Threejs教程】9.生成曲线、几何体章节12、【Threejs教程】10.相机基础章节13、【Threejs教程】11.光源和阴影章节14、【Threejs教程】12.精灵模型Sprite章节15、【Threejs教程】13.后期处理章节16、【Threejs教程】14.射线拾取模型章节17、【Threejs教程】15.场景标注标签信息章节18、【Threejs教程】16.关键帧动画章节19、【Threejs教程】17.动画库tween.js章节20、【Threejs进阶】1数学几何计算基础(向量)章节21、【Threejs进阶】2位移、速度、加速度章节22、【Threejs进阶】3矩阵基础章节23、入门到精通(按需学前面课程是本章节新版本)章节24、WebGL入门教程(初学three可以跳过,慢慢来)章节25、案例——物联网粮仓章节26、案例—产品720展示(轿车、手机)章节27、案例—智慧城市章节28、案例—大屏3D地图可视化章节29、案例——大屏3D地球可视化章节30、【扩展课】CesiumJS入门教程章节31、【WebGPU教程】1.WebGPU快速入门章节32、【WebGPU教程】23D几何变换数学基础课程源码+课件
  • 所需E币: 0
    时间: 2023-6-7 16:30
    大小: 1.69KB
    上传者: 蝴蝶结欧恩
    今天给大家分享一套WebGL/Three.js视频教程——《WebGL/Three.js前端高薪3D可视化》,又名:《Three.js/WebGL3D可视化系统课程》,课程持续升级更新中,提供配套的源码下载!《WebGL/Three.js前端高薪3D可视化》是目前全网最全的一套关于WebGL/Three.js的视频教程,一共700多课时,涉及众多实战案例,比如智慧城市,产品720展示(轿车、手机),收费站,物联网粮仓,大屏3D地图可视化,大屏3D地球可视化,WebGPU等内容。《WebGL/Three.js前端高薪3D可视化》,又名:《Three.js/WebGL3D可视化系统课程》,内容巨多!(入门+中级+高阶+案例),全网除了本课程,很少有课程提供那么多高级进阶的案例或知识讲解,这意味着,初学者除了入门学习,还可以长期进阶学习,已经入门的可以拿来高级进阶。本课程包含大量经典前沿的可视化项目,从基础入门到深入讲解,我们致力于做一套Web3D系统的课程,讲师在该专业有多年的经验,是国内最早一批的教授Three.js+WebGL网络课程的讲师,并不断跟随该行业的发展更新自身技术与教程.不同于那些见缝插针,多会而不精的技术商人,老师始终专注于3D的行业动向,正所谓师者,传道受业解惑者也.期待与大家共同进步,-起面向更好的未来。Three.js是一款运行在浏览器中的3D引擎,你可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象。你可以在它的主页上看到许多精彩的演示。不过,这款引擎还处在比较不成熟的开发阶段,其不够丰富的API以及匮乏的文档增加了初学者的学习难度(尤其是文档的匮乏)three.js的代码托管在github上面。WebGL(WebGraphicsLibrary)是Web上3D图形的新标准,它是为渲染2D图形和交互式3D图形而设计的。它源自OpenGL的ES2.0库,这是一个用于手机和其他移动设备的低级3DAPI。WebGL提供了与ES2.0(嵌入式系统)类似的功能,并且在现代3D图形硬件上表现良好。WebGL是一个可与HTML5一起使用的JavaScriptAPI。WebGL代码写在HTML5的<canvas>标记内。它是一种规范,允许Internet浏览器访问使用它们的计算机上的图形处理单元(GPU)
  • 所需E币: 1
    时间: 2023-6-1 11:07
    大小: 8.06MB
    Vue.js权威指南-(前端撷英馆)-张耀春
  • 所需E币: 0
    时间: 2023-4-13 10:08
    大小: 2.19KB
    上传者: 开心就很好了
    今天给大家分享一套关于前端面试的视频教程,课程名字《前端模拟面试,给你真实的求职体验和面试经验》,视频+源码+笔记下载!知己知彼,百战不殆。面试是求职者与面试官双方的交锋,每个问题都有含义,每个回答都能影响你的面试结果。如何理解面试问题背后的内涵,如何给出有效回答,如何适当展示自己的优势?本课程邀请5位不同背景的前端求职者,真实还原面试过程,并复盘面试表现,更直观、更有效地帮助大家提升面试技巧,优化面试表现。知己知彼!学会正确和面试官“你来我往”,提升面试成功率熟悉常规流程让你自我介绍,讲什么?让你介绍一个项目,说什么?让你向面试官提问,问什么?规避面试问题基础题容易临场忘记,怎么办?说不出项目难点,怎么办?遇到不会的问题,怎么沟通?优化面试技巧了解面试官立场从面试官的角度重新组织语言表达沟通更到位,成功率更高5位求职者,10场模拟面试(1面+2面),收获>你自己面试的总和托雷特00后迎接毕业生React技术栈模拟面试后的反馈:通过这次模拟面试,我找到了自己不足的地方,也学习到许多有用的方法、技巧,收获颇丰。老师给的建议十分中肯,为我指明了方向。困扰我许久的问题终于得到解决,我也有动力继续前端的学习了。陈同学985毕业两年转行前端React+Vue技术栈模拟面试之后的反馈:老师的模拟面试可以体验到面试的全流程,前端的主要技能均有题目涉及。面试的题目并非仅是简单的八股文问答,而是紧抓前端的重点知识,但又可能以不同方式考察,这样对问题的深入思考,既帮助了我进行查缺补漏,也让我对核心知识记得更加牢固。整个面试过程给我的体验是,我不是在进行一场冷冰冰的面试,而是可以学到在正式面试中可以如何去思考题目,如何去把握住面试官考察的点,这也让我在后续的面试中可以更加自信。小明同学毕业两年的专科生Vue技术栈模拟面试之后的反馈:1.这次模拟面试收获挺大明白自己哪方面的不足和欠缺,更清楚地认识自己2.老师的备课下了很大功夫,也准备很多的干货对学员也是非常的耐心真的很佩服老师。3.非常感谢老师给予机会来模拟面试,希望多多少少能够帮助到老师一些,再次感谢老师~W同学(女生)毕业三年寻求技术突破React技术栈模拟面试之后的反馈:通过参加老师的面试辅导,让我明确了自己简历中的不足之处,明确了当下最需要补充的知识点,从而能够更好的准备接下来的面试。同时老师也解答了我对于自己的职业发展方向的疑惑,让我的前端职业生涯方向更为清晰。非常感谢老师的辅导。老师辛苦了~就在老师面试的第12天,我找到了合适的工作,非常感谢老师的面试指导。张扬毕业6年的前端“老兵”Vue技术栈模拟面试之后的反馈:通过这次模拟面试,知道了自己在面试中的不足与自己的短板,还有面试中的套路,知道面试官的想法,要学会举一反三。通过老师的讲解有些问题都豁然开朗,对自己以后的面试有很大的帮助。
  • 所需E币: 1
    时间: 2023-4-10 12:10
    大小: 46.15MB
    Web前端黑客技术揭秘-钟晨鸣-徐少培
  • 所需E币: 1
    时间: 2023-4-10 11:40
    大小: 131.69MB
    疯狂前端开发讲义-Jquery+AngularJS+Bootstrap前端开发实战-李刚
  • 所需E币: 2
    时间: 2023-3-29 16:50
    大小: 60.54MB
    循序渐进Vue.js3前端开发实战-张益珲-清华大学出版社
  • 所需E币: 1
    时间: 2023-3-29 16:44
    大小: 271.99MB
    JavaScript&jQuery交互式Web前端开发-JonDuckett-清华大学出版社
  • 所需E币: 0
    时间: 2023-3-20 17:35
    大小: 1.07KB
    上传者: 开心就很好了
    分享一套前端面试的视频教程——《前端面试全家桶,从求职准备到面试演练》,课程一共39章,附源码+笔记下载!本课程包含了从知识点、考题、到刷题,从简历编写、简历分析、到模拟面试的多维度知识与经验技能,助你更从容地应对大厂的前端面试。300+常考面试题带出知识点+解决方案,训练举一反三的硬实力!前端面试知识体系+面试场景模拟演练,助你更从容地应对大厂前端面试:常考知识点和面试题系统性夯实前端知识体系300+面试题集中突破硬技能难关覆盖前端面试的常见问题及刁钻问题面试流程完整,妥帖做好每一步的准备优秀简历的创作方法尽心做好求职阶段准备挑选合适的简历模板凸显个人技术亮点,合理展示项目经历体现个人价值,在求职阶段引起面试官注意体验真实的面试场景规避实际面试中的细节问题恰当的的个人自我介绍项目描述时的难点和成就软素质问题的回答策略,不做“眼高手低”族对标大厂招聘需求,绘制人才画像通过刷题+模拟练习带你强化个人表现
  • 所需E币: 5
    时间: 2023-2-7 10:27
    大小: 170.43KB
    上传者: czd886
    基于IFML智能家居移动界面的前端建模.
  • 所需E币: 3
    时间: 2022-12-6 01:46
    大小: 2.03MB
    上传者: 大大银河
    PCB的阻抗控制与前端仿真(SI9000的应用).pdf
  • 所需E币: 4
    时间: 2022-10-11 16:32
    大小: 3.07MB
    上传者: czd886
    铁路客运站视频监控高清化前端改造方案
  • 所需E币: 5
    时间: 2022-10-8 17:41
    大小: 295.12KB
    上传者: ZHUANG
    基于3G无线网络的视频监控系统前端设计方案