04-多路选择器

1.多路选择器

  • 组合逻辑是Verilog设计中的一个重要组成部分,从电路本质上讲,组合逻辑电路的特点是输出信号只是当前时刻输入信号的函数,与其他时刻的输入状态无关,无存储电路,也没有反馈电路
    组合逻辑电路输出信号的电平变化仅仅与输入信号的电平变化有关,不涉及信号跳变沿的处理
  • 多路选择器,是数据选择器的别称,在多路数据传送过程中,能够根据需要将其中任意一路选择出来的电路,叫做数据选择器,也称作是多路选择器或者多路开关

2.二选一选择器

  • 输入两信号,在选择信号为高的时候输出第一个信号,选择信号为低的时候输出第二个信号
  • 在开发板上使用KEY1,KEY2作为两个信号输入,KEY3作为信号的选择,LED灯为输出

3.FPGA设计

框图与波形图

  • in_1和in_2信号是随机的

RTL

module mux2_1
(
  input    wire    [0:0]  in_1,
  input    wire           in_2,
  input    wire           sel,
  output   reg            out
);
  
  // always产生组合逻辑的时候使用*
  always@(*)
    if(sel == 1'b1)
      out <= in_1;
    else
      out <= in_2;
endmodule
  • 创建quartus项目,添加verilog代码,编译文件

testbench编写

`timescale 1ns/1ns

module tb_mux2_1();
  reg in_1;
  reg in_2;
  reg sel;
  wire out;

  initial begin
    in_1 <= 1'b0;
    in_2 <= 1'b0;
    sel <= 1'b0;
  end

  always #10 in_1 <= {$random} % 2;
  
  always #10 in_2 <= {$random} % 2;
  
  always #10 sel <= {$random} % 2;
  
  initial begin
    $timeformat(-9,0,"ns",6);   //-9表示以ns的时间显示时间 10^-9表示ns,10^-3表示ms
                         // 0表示小数点后打印的位数
                        // 最小显示位数6个
    $monitor("@time %t:in_1=%b in2=%b out=%b",$time,in_1,in_2,out);
                        // %t 是时间的占位符  $time使用%t占位
  end

  
  // 例化module
  mux2_1 mux2_1_inst(
    .in_1 (in_1),
    .in_2 (in_2),
    .sel  (sel ),
    .out  (out )
  );
endmodule
  • 在quartus中添加仿真文件
  • 设置仿真格式
  • 在modelsim中进行仿真

// 其他方式实现
// 方式2
always@(*)
  case(sel)
    1'b1:out = in_1;
    1'b0:out = in_2;
    default : out = in1;
  endcase

// 方式3
assign out = sel ? in_1 : in_2;
本文转载于网络 如有侵权请联系删除

相关文章

  • Linux服务器删除乱码文件和文件夹的方法

    由于php大势所趋,所以接触Linux服务器的机会越来越多。不同于Windows服务器,Linux服务器只支持数字、英文等字符,对中文字符没办法识别。所以导致我们打包上传文件解压之后出现中文乱码文件和文件夹。网上有很多解决的办法,但是今天亲测用find命令能快速删除乱码的文件和文件夹,所以跟大家分享一下。首页进入乱码文件所在文件夹使用ls-i命令找到文件或文件夹的节点编号前面的就是节点号了,接下来使用find命令查询并且删除-inum指根据节点号查询;-delete顾名思义就是删除操作了。这样就成功删除乱码文件了,值得注意的是,此方法只适用于删除文件或空的文件夹。对于文件夹,尤其是非空的文件夹,上面的方法就不适用了,要用到另外的参数来实现,首先相同的是查看乱码文件夹的节点号接下来使用find命令删除虽然提示我们找不到此文件或文件夹,但其实已经表明删除了。-exec作用是查找后执行命令,其中{}代表前面查询到的结果,空格+\;是结束符,其它就不说了。-exec后可以跟任何常用命令,因此这方法不但适用于文件夹,文件也可以。怎么批量删除呢?其实很简单,用for就好了文件文件夹$n是变量名,与

  • EasySim: 一个简单的仿真脚本 v1.1

    老版EasySim:一个简单的仿真脚本v1.0v1.1版支持:切换仿真器irun、xrun、vcs,在conf.json里指定。支持打开Verdi,并支持只打开RTL。增加了options可以仿真fpga代码,支持多顶层。增加了dryrun,只打印最终的cmd,但不运行,方便调试脚本本身的错误。支持灵活的timescale,功能仿真用粗精度,后仿用高精度,支持从conf文件里覆盖timescale。快速建立环境makesureyouhaveinstalledpython3andgitgitclonehttps://gitee.com/exasic/easysimcopyrtltortldirectoryeditsim/conf/conf.jsongotosim/rsimdirectoryandruncmd./run_sim.py使用方法RunsimulationwithCadenceIncisivepython3run_sim.py-tc=tc_sanity python3run_sim.py-top=iic-tc=tc_sanity复制RunVerdipython3run_sim.p

  • Qt开源作品15-视频监控画面

    一、前言视频监控系统在整个安防领域,已经做到了烂大街的程序,全国起码几百家公司做过类似的系统,当然这一方面的需求量也是非常旺盛的,各种定制化的需求越来越多,尤其是这几年借着人脸识别的东风,发展更加迅猛,人脸识别相关的技术和应用这几年处于风口浪尖,衍生了特别多的应用产品,各种人脸识别的产品遍地开花,刷脸门禁,车站机场人脸识别,刷脸取票等,但是其实大部分内行人士可能都比较绝望,外行感觉像看科幻片一样,老板们各种打鸡血,今天几个亿明天几个亿。纵观Qt的应用场景领域,在国内,基本上在安防、航天船舶、教育、工业控制领域,占有比较大的比例,其实个人非常喜爱Qt的,从没见过如此完美的API封装,包括命名,最牛逼的就是跨平台特性,可以说完爆.NET的跨平台,甚至连那种几十兆的嵌入式linux版本都能运行,这就使得成本大大降低,提高了产品的丰富性。自从用了Qt以后,就再也不想用VC/VB/C#等。视频监控画面在任何视频监控系统中是少不了的一个功能,基本上是需要1画面、4画面、6画面、8画面、9画面、16画面等,Qt提供的表格布局非常胜任这个工作,网上几乎没有看到qt做的最基础的视频监控画面分割的demo

  • 使用gorilla/mux增强Go HTTP服务器的路由能力

    今天这篇文章我们将会为我们之前编写的HTTP服务器加上复杂路由的功能以及对路由进行分组管理。在之前的文章《深入学习用Go编写HTTP服务器》中详细地讲了使用net/http进行路由注册、监听网络连接、处理请求、安全关停服务的实现方法,使用起来非常方便。但是net/http有一点做的不是非常好的是,它没有提供类似URL片段解析、路由参数绑定这样的复杂路由功能。好在在Go社区中有一个非常流行的gorilla/mux包,它提供了对复杂路由功能的支持。在今天这篇文章中我们将探究如何用gorilla/mux包来创建具有命名参数、GET/POST处理、分组前缀、限制访问域名的路由。安装gorilla/mux包我们在之前写的HTTP服务的代码根目录,使用goget命令从GitHub安装软件包,如下所示:gogetgithub.com/gorilla/mux复制在《深入学习用Go编写HTTP服务器》中我们介绍过路由注册、匹配和最后处理函数的调用都是由ServeMux(服务复用器)来完成的,而且我们还自己定义了复用器用以替换默认的DefaultServeMux。同样的gorilla/mux包也是为我们提

  • python sqlite3 的使用,性

    sqlite3的使用,性能及限制 python中使用sqlite3首先是基本的使用: #coding=utf8 __author__='Administrator' #导入模块,在python中是已经内置了这个模块,所以就不需要安装而直接使用了 importsqlite3 #创建数据库的连接,sqlite是使用的本地文件进行存储的,这里直接打开 conn=sqlite3.connect('path_to_database_name.db',timeout=5) #对比mysql可以进行网络连接数据库,所以要加上对应的协议,用户,密码,地址,数据库,编码等构造出类似的连接字符串 #操作 #获取游标 cursor=conn.cursor() #对于数据库的表的操作是通过游标进行的,所以在操作之前要获取游标对象,要注意的是使用完之后进行关闭 #查询一个对象 cursor.execute("select*fromtb_studentwhereage>?",(15,)) #这里是通过游标执行了一个查询语句,其中可以通过

  • 【程序员软实力】如何构建?他坚持了2100多天,收获了这些心得

    导语| 程序员的软实力体现哪些方面?技术输出对于程序员来讲,其意义有哪些?提升软实力的主要步骤是什么?坚持每天写作,对个人来讲,其挑战有哪些?如何平衡其与本质工作所占用的时间比例?腾讯云最具价值专家(TVP)杨建荣,坚持技术分享连续2100多天,他是如何构建自己的软实力的?来一起听听他的答案。腾讯云开发者社区独家采访视频受访者简介| 杨建荣,竞技世界资深数据库工程师,腾讯云最具价值专家(TVP),前搜狐畅游数据库专家,OracleACE,YEP成员。著有《OracleDBA工作笔记》、《MySQLDBA工作笔记》,拥有十年以上数据库开发和运维经验,目前专注于开源技术,运维自动化和性能调优。拥有Oracle10gOCP、OCM、MySQLOCP认证,对shell,Java有一定的功底。坚持每日通过微信、技术博客进行技术分享,已连续坚持2100多天。程序员的软实力体现哪些方面?从我的理解来说,主要体现在三个方面。第一个是态度,我们评价一个人态度最直观的印象就是这个人是否踏实,能够沉下心来学习,摆正自己的工作态度,做事不毛手毛脚,哪怕有些东西现在不会,但是保持一种空杯心态去学习请教,在团队协

  • Python快速入门(三)

    引言Python作为一个,目前最火的编程语言之一,已经渗透到了各行各业。它易学好懂,拥有着丰富的库,功能齐全。人生苦短,就用Python。 这个快速入门系列分为六篇,包含了Python大部分基础知识,每篇阅读时间不长,但内容含量高。大家最好亲自码一遍代码,这样可以更有收获。概要1、掌握Python中的输入函数,让程序因为交互变得生动;2、掌握Python中的参数变量,让管理参数接口得心应手;3、掌握Python中的文件读写,轻松应对程序和文件交互。输入在之前的学习中,我们一直离不开print()函数,我们可以把print看成是一个程序向用户输出信息的途径。反过来我们也可以向程序输入一些信息,其实这种操作无处不在,我们操纵鼠标或者用键盘打字都可以看成是向电脑进行输入。而对于Python而言,我们有输入函数input()。代码:print('Pleaseenteryourname')name=input()print('Howoldareyou?')age=input()print('Hello%s,youare%syearsold.&#x

  • Redis项目实战,一些经验总结

    背景Redis是一个开源的内存数据结构存储系统。可以作为数据库、缓存和消息中间件使用。支持多种类型的数据结构。Redis内置了复制(replication),LUA脚本(Luascripting),LRU驱动事件(LRUeviction),事务(transactions)和不同级别的磁盘持久化(persistence)。通过Redis哨兵(Sentinel)和Redis集群(Cluster)的自动分区,提供高可用性(highavailability)。 基本数据类型字符串(strings)1、string的过期时间在重新设置值之后会被清除127.0.0.1:6379>sethello3 OK 127.0.0.1:6379>gethello "3" 127.0.0.1:6379>ttlhello (integer)-1 127.0.0.1:6379>expirehello3000 (integer)1 127.0.0.1:6379>sethello4 OK 127.0.0.1:6379>ttlhello (integer)-1复

  • Linux 内核 TCP MSS 机制详细分析

    作者:Hcamael@知道创宇404实验室 时间:2019年6月26日 英文版本:https://paper.seebug.org/967/前言上周Linux内核修复了4个CVE漏洞[1],其中的CVE-2019-11477感觉是一个很厉害的Dos漏洞,不过因为有其他事打断,所以进展的速度比较慢,这期间网上已经有相关的分析文章了。[2][3]而我在尝试复现CVE-2019-11477漏洞的过程中,在第一步设置MSS的问题上就遇到问题了,无法达到预期效果,但是目前公开的分析文章却没对该部分内容进行详细分析。所以本文将通过Linux内核源码对TCP的MSS机制进行详细分析。测试环境1.存在漏洞的靶机操作系统版本:Ubuntu18.04内核版本:4.15.0-20-generic地址:192.168.11.112内核源码:$sudoaptinstalllinux-source-4.15.0 $ls/usr/src/linux-source-4.15.0.tar.bz2复制带符号的内核:$cat/etc/apt/sources.list.d/ddebs.list debhttp://ddebs

  • 教育部认定,“新工科”最有“钱途”

    正文:“独学而无友,则孤陋而寡闻”(《礼记·学记》),“利可共而不可独”(曾国藩)。知识共享,欢迎转发。在这个连小学生都要学习编程的时代,什么才是教育孩子的正确方式?答案是:以大时代发展趋势为标准,为孩子进行教育投资。教育部的相关政策就能为我们提供很好的参考。这不,新课改的热度还未散去,教育部又出了关于“新工科”的通知:教育部新工科项目的正式认定,意味着备受高教界关注的高校新工科建设开始进入实施阶段。也就是说,新工科里面的一些专业将会成为未来最火、最有“钱”途的大学专业。下面为大家简单分析下新工科对孩子的影响,家长们可以重点关注下。01什么是“新工科”“新工科”对应的是新兴产业,首先针对新兴产业的专业:人工智能、智能制造、机器人、云计算等(懂编程的孩子又能占据先发优势),也包括传统工科专业的升级改造。 教育部、人力资源和社会保障部、工业和信息化部联合印发了《制造业人才发展规划指南》列出的“制造业十大重点领域人才需求预测”里,新一代信息技术产业、高档数控机床和机器人、航空航天装备、海洋工程装备及高技术船舶等新工科专业课可是榜上有名哦。02“新工科”咋这么火?科学技术是立国之本。 我国多年

  • 性能超前,详解腾讯云新一代Redis缓存数据库

    背景当前内存数据库发展迅速,用户对于存储系统的要求也越来越高,为了满足各类业务场景的需要,腾讯云设计了新一代的内存数据库,不但保留了原来系统的高性能,高可用等特性,同时还兼容了当前流行的Redis原生协议及使用方式。我们试图在解决原生方案短板的基础上,不断创新,使得新系统同时具备易懂、易用、易维护、高可靠、低成本等特点。主要体现在以下几个方面:1.沿用了上一代自研系统使用共享内存的数据存储方案,避免Redis采用AOF机制,恢复时间过久的问题,极大的降低了在升级、进程异常等场景产生的影响。同时,使用全新的快照与流水机制,解决了Fork机制造成的内存预留问题2.在存储引擎方面,对于自研及开源方案进行重新分析整理,进行了再次创新,不但使用多规格Block灵活组合的存储方式,内部数据结构同样采用动态页管理,对比原生引擎,极大的提高了内存使用率的同时,也降低了运行过程中产生内存碎片的机率3.单进程多线程的模型让运维部署更加简便,同时精简模块数量,让请求路径更短4.更加精细化的数据管理,实现快速的过期淘汰及精确的LRU特性5.实现了强一致特性,满足了金融等业务对于数据一致性的强需求6.集群版模式

  • 飞林沙:商品推荐算法&推荐解释

    这是今天看到的一篇蛮有新意的讲稿,由于不是一篇完整的论文,所以理解起来稍微有些困难,就顺着写个笔记,仅供参考。在这篇文章中,我分成两部分,我们先顺着作者的思路去理解,如果对数学不感兴趣就直接往下拉,最后我会说按我的理解中我们需要从作者这里吸取什么和我推荐的做法。 做过商品或者条目推荐的同学,应该都创建过一张这样的ProductGraph.但是这样的图谱不具备文本含义的解释性,而且也没办法很好的和内容关联起来。我相信大部分同学之前一般的做法是这样子,先找到同一个类别,然后在同一个类别里做这样的事儿。生成一张完整的产品图谱的作用有以下几个:但是这里很重要,因为如果单纯用类别可以找到替代品,但是找不到互补品。另外的一个问题还在于怎样生成替代品的推荐理由,应该是更好,而不是他们包含同一关键词。推荐一整套装备。所以我们讲产品问题转换成数学模型问题:在模型层面:是否我们可以使用产品数据建模,来表示出产品之间的关系在产品理解层面:我们是否可以解释为什么用户更喜欢某一个产品而不是其他的问题建模:作为一个二元分类问题,来看p(x,y),也就是x和y之间是否有关联。那么整体的优化目标就变成了这个样子,也就

  • Apache Hbase 快速入门

    本文节选自《NetkillerDatabase手札》第62章ApacheHbase目录62.1.安装ApacheHbase 62.1.1.单机安装62.2.HbaseShell62.3.WebUI62.4.配置ApacheHbase 62.4.1.hbase-env.sh62.5.FAQ 62.5.1.HBaseConfTool:Unsupportedmajor.minorversion51.062.5.2.ignoringoptionPermSize=128m;supportwasremovedin8.062.1.安装ApacheHbase注意:ApacheHbase不能使用OpenJDK启动,需要去Oracle网站下载ServerJRE62.1.1.单机安装如果你是第一次安装Hbase,建议你从单机安装开始,这样成功率比较高,不会受挫。Hbase不比关系型数据库复杂,只是安装比较麻烦,一旦安装号使用起来还是很容易上手的,请直接粘贴复制下面的命令即可完成安装: cd/usr/local/src wgethttp://mirrors.hust.edu.cn/apache/hbase

  • Akka(2):Actor生命周期管理 - 监控和监视

     在开始讨论Akka中对Actor的生命周期管理前,我们先探讨一下所谓的Actor编程模式。对比起我们习惯的行令式(imperative)编程模式,Actor编程模式更接近现实中的应用场景和功能测试模式。这是因为Actor是靠消息来驱动的,每种消息代表一项功能的运算指令。由于消息驱动式的程序是松散耦合的,每项功能都是在独立的线程中运算,互不干扰依赖,所以我们可以很自然的分开来实现各项功能以及独立测试每项功能。虽然Akka同时提供了Java和Scala两种API,但可能由于Akka本身是用Scala开发的,所以感觉用Scala来开发Akka程序会更自然些:笼统来讲,Actor编程主要就是对receive函数的实现。而receive函数就是几个普通的功能函数用模式匹配的方式按消息类型进行调用。receive函数所调用的功能函数可以是任何JVM兼容语言函数,由于每个Actor的运算都在自己独立的线程里进行,所以我们不必担心Actor函数在运行中的交叉调用问题。Akka程序本就是一种原生的多线程程序,每个Actor都在一个自己的线程内独立运算它的receive函数。除此之外Actor的运算环境

  • VS2015新功能

    今天有幸参加了微软的VisualStudioDevDay,趁还没有忘记今天的学习内容。 先把这些内容记录下来,如果有其他人也参加此次交流活动,请补充完善。 VS2015新功能 1,Roslyn编译器。 2,断点“灯泡”功能。 3,支持重构,加强的智能提示功能。 4,C++中支持将字符串转换为原生字符串。 5,代码调试(这个个人感觉是很酷的) 5.1PerfTips 5.2设置的断点中显示调试时间,CPU使用情况。 5.3条件断点,设置表达式,就可以在循环遍历中根据表达式开启断点功能。 5.4断点输出消息功能,可自定义输出消息。 6,发布,编译时间更短。 7,3D图形程序开发工具中抓出画面,还原画面中像素轨迹。 8,热呼呼的ASP.NET5 9,云端服务。 10,在Xamarin协助下C#跨平台的移动开发,支持IOS,Android,WindowPhone等。 11,C++开然支持跨平台。 都是干货,激动人心。  

  • Redis服务器和客户端的通信

    Redis客户端使用RESP(Redis序列化协议)与Redis服务器进行通信,RESP在位于TCP之上,而网络模型上客户端和服务器是保持的双工的连接。如图1 而一个简单的请求/响应的串行通信模型如下图: 串行化通信 串行化通信比较简单,上面那张图就很表面的反应出来这种通信方式,同一个Connction需要在等上一个命令执行完成之后在执行下一个命令,我们在前面文章讲Redis各种类型的时候做的测试,就是用这种方式。客户端发送一个指令到Redis实例,Redis实例处理完成之后将结果返回给客户端。 前面文章说Redis为什么要用多线程中有说过,Redis处理请求的速度特别快,我们一个请求的瓶颈主要是在I/O上面,而对于串行化通信,每一个请求的发送都要等到上一个请求的响应介绍,因此在串行模式下,单连接的大部分时间都浪费在网络等待上,没有充分的利用服务器的处理能力。 管道技术 Redis在很早的时候就支持管道技术了,简单来说,就是可以完全无需等待服务端应答地发送多条指令给服务端,并最终一次性读取所有应答。管道技术最显著的优势是提高了redis服务的性能,通过管道技术来进行大批量的操作的时

  • 携程国际化进程中,是怎么做站点多语言处理的

    干货|携程国际化进程中,是怎么做站点多语言处理的?https://mp.weixin.qq.com/s/JIxeBsTTdO26B0BT0GDx9Q 干货|携程国际化进程中,是怎么做站点多语言处理的? 原创 祁劢 携程技术 2018-07-2422:00 作者简介   祁劢,携程国际业务部内容研发团队Leader,目前主要负责信息类项目产品设计、技术架构与团队管理。CG爱好者,喜欢细致描绘世间百态的通俗小说,喜欢探索,乐于体验各地风土人情。   一、项目背景   携程国际业务部门(IBU)是携程多语言站点的研发及维护部门,主要面向国际客户提供携程优质的产品与服务。在国际业务部门研发的众多信息处理产品中,IBU内容研发团队的携程内容翻译平台-CTran,主要负责对酒店、机票等业务的内容信息进行多语言处理,为携程国际化提供支持。   作为CTran系列的产品设计与技术架构,我与团队一起经历了CTran项目的演进与革新。   CTran目前最新的V3版本于2018年年初正式上线,是经过重新设计和整体重构的技术

  • TCP/IP 卷一:协议(IP层)

    网络协议 基本介绍 IP是TCP/IP协议簇中最核心的协议,所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。IP提供不可靠、无连接的数据报传送服务。 不可靠:协议不能保证IP数据报能成功地到达目的地。 无连接:协议并不维护任何关于后续数据报的状态信息。 IP层的数据封装格式 每个字段的详细解释见原书 IP路由选择 如果目的主机与源主机直接相连(如点对点链路)或都在一个共享网络上(以太网或令牌环网),那么IP数据报就直接送到目的主机上。否则,主机把数据报发往一默认的路由器上,由路由器来转发该数据报。 IP层既可以从TCP、UDP、ICMP和IGMP接收数据报(即从本地上层生成的数据报)并发送,或者从一个网络接口接收数据报并进行发送。IP层有一个路由表,收到数据报并进行发送时,都要对该表搜索一次。当数据报来自某个网络接口时,IP首先检查目的IP地址是否为本机的IP地址之一或者IP广播地址。如果确实是这样,数据报就被送到由IP首部协议字段所指定的协议模块进行处理。如果数据报的目的不是这些地址,那么如果IP层被设置为路由器的功能,那么就对数据报进行转发(也就是说,像下

  • Javascript MV framework 对比

    在网络层,互联网提供所有应用程序都要使用的两种类型的服务,尽管目前理解这些服务的细节并不重要,但在所有TCP/IP概述中,都不能忽略他们: 无连接分组交付服务(ConnectionlessPacketDeliveryService) 无连接交付抽象地表示大多数分组交换网络都能提供的一种服务。简单地讲,指的是TCP/IP灰暗网按照报文上携带的地址信息把短报文从一台机器传递到另一台机制。因为无连接服务单独传递每个分组,所以不能保证可靠、有序地传递。而且,由于无连接服务通常直接映射到底层的硬件上,所以非常有效。更重要的是,有了无连接分组交换作为互联网服务的基础,使得TCP/IP协议协议可以适应多种网络硬件。 可靠的数据流传输服务(ReliableStreamTransportService) 大多数应用程序要求得到比分组交换更多的服务,因为它们要求通信软件能够从传输错误、分组丢失或发送者与接受着之间路径上的交换机的故障中自动恢复过来。可靠的传输服务处理了这些问题。它允许一台计算机上的应用程序与另一台计算机上的应用程序之间建立一个"连接",然后通过该链接发送大量数据,就像这是一个永久的直接硬件

  • Ajax详解

    1、Ajax是什么? Asynchronousjavascriptandxml:异步的JS和XML 2、异步交互和同步交互 同步 --->发一个请求,就要等待服务器的响应结束。然后才能发第二个请求!中间这段时间就是一个字“卡” --->刷新的是整个页面!! 异步 --->发一个请求后,无需等待服务器的响应,然后就可以发第二个请求! --->可以使用JS结束服务器的响应,然后使用JS来局部来机新 3、Ajax常见应用场景 百度搜索框 用户注册时(用户名是否已被注册) 4、Ajax的优缺点 优点 --->异步交互;增强了用户的体验! --->性能:因为服务器无需再响应整个页面,只需要响应部分内容,所以服务器的压力减轻了 缺点: Ajax不能应用在所有场景! Ajax无端的增多了对服务器的访问次数,给服务器到来了压力! Ajax发送异步请求(四步操作) 1、第一步 Ajax其实只需学习一个对象:XMLHttpRequest,如果掌握了他,就掌握了Ajax!!   得到XMLHttpRequest   大多数浏览器都支持:v

  • 发邮件

      packagecom.company; importjavax.mail.*;//导入的jar包mail.jar,sun官网有 importjavax.mail.internet.InternetAddress; importjavax.mail.internet.MimeMessage; importjava.util.Date; importjava.util.Properties; publicclassSendEmail{ /* 邮件软件称为MUA:MailUserAgent,意思是给用户服务的邮件代理,说白了就是你用的邮箱软件,qq邮箱呀,阿里云邮箱什么的 邮件服务器则称为MTA:MailTransferAgent,意思是邮件中转的代理 最终到达的邮件服务器称为MDA:MailDeliveryAgent,意思是邮件到达的代理 发邮件就是用户在MUA上发送到MTA上,MTA转发到MDA服务器上硬盘存储,接收方通过浏览器或软件在MDA服务器上查看邮件 1.常用的电子邮箱协议都属于TCP/IP协议,SMTP协议是一个建立在TCP之上的协议,任何程序发送邮件都必须

相关推荐

推荐阅读