在button标签中添加aria-label如情况二,屏幕阅读器提示:提示内容按下按钮,即添加了aria-label後,会自动覆盖button标签里面的内容,不再读出。
role="alertdialog"表明该div是一个对话方块,div标签中的aria-labelledby与h3标签中的id保存一致,这样就可以提示div标签的资讯,屏幕阅读器提示:标题对话方块
选项卡的例子,role=tablist表明ul是一个选项卡清单;role="presentation"表示称述,role="tab"表明该a标签是一个选项卡,屏幕阅读器提示:企业经办人选项卡
情况一是选项按钮例子role="radiogroup"表明ul是一个单选组,tabindex="0"实现聚焦,role="radio" 表明li标签是一个选项按钮,aria-checked说明选项按钮是否选中,aria-checked="true"表明选项按钮已选中,aria-checked="false"表明选项按钮未选中,屏幕阅读器提示:A选项选项按钮未选中
role="alertdialog"表明div是一个对话方块,屏幕阅读器提示:对话方块
for、id(联动操作)
for和id进行联动,多用於form表单表单中的input编辑文本
情况一:
情况二:
用户名:
一般遇到input标签即编辑文本时,屏幕阅读器提示:可编辑文本,这样使用者无法或获知该文本的作用,虽然可以通过aria-label添加提示资讯(除非没有label),相对来说不便利,随着标签内容的改动也要改变aria-label的提示资讯。所以一般的input标签编辑方块都需要进行联动。
情况一:这里的联动就是将label标签中的for和input标签中的id取名一致即可,则屏幕阅读器提示:用户名可编辑文本。
注意:不能用name进行代替
情况二:在情况一的基础上可以加上一个title的属性,主要是用於提示使用者的内容,如该文本编辑方块是一个必填项。屏幕阅读器提示:用户名编辑文本必填项
alt
alt一般运用於img标签中
情况一:
情况二:
小猫图片
情况一:alt的使用让屏幕阅读器可以将图片的内容读出来,若图片不存在则会提示alt里面的内容。屏幕阅读器提示:小猫图片连结已遍历;
情况二:
因为a标签已经有内容了,img 的alt无需重复重复设置,否则屏幕阅读器会连续读两次重复的内容,引起混乱。
onpicked
实现日期选择联动
var endtime=$dp.$('endtime'); WdatePicker({onpicked:function(){endtime.focus();},maxDate:'#F{$dp.$D(\'endtime\')}'})"/>
至
$dp.$:是一个内置函数,相当於document.getElementById
$dp.$D:是一个内置函数,意思是记录该日期到日(D就是y,M,d,H,m,s 分别代表 年月日时分秒中的d)
三、无障碍网页使用规则和注意事项
3.1 ARIA在HTML中的使用规则
(1)ARIA使用规则一
如果你使用的元素( HTML5 )具有语义化,应该使用这些元素,而不应该重新定义一个添加ARIA的角色、状态或属性的元素。在HTML(HTML5)元素特性不管支援或不支援,只要不具语义化,就可以使用ARIA 排除视觉设计约束使用一个特定的元素,但不能是样式上所需的元素。
(2)ARIA使用规则二
不改变语义,除非你真的需要使用。
例如,开发者想创建一个标题,而且它是一个按钮。
不要这样做:
标题按钮
建议这样做:
标题按钮
或者说,你不使用正确的元素,但你可以这样做:
标题按钮
如果使用一个非交互的元素做为一个交互的元素,那麽开发人员必须使用ARIA添加语义和使用适当的脚本增加交互行为。
(3)ARIA使用规则三
所有的ARIA制作控制项都必须具有键盘(keyboard)事件。如果创建一个元件(widget),使用者可以点击、拖放、滑动或滚动,使用者使用键盘能定位到创建好的元件部件上,并且执行相应的操作动作。即如果使用 role=button 必须能够接收到焦点和使用者能够使用键盘启动相应动作
(4)ARIA使用规则四
不建议在可获取焦点元素使用ARIA的角色:role=presentation或 aria-hidden="true"。可获取焦点元素上使用ARIA这两规则,会导致一些使用者无法获取元素焦点。
不要这样做:按下我
也不要这样做:按下我
如果说一个交互元素无法看到或者不能与之交互,那麽可以尝试使用aria-hidden,例如:button {visibility:hidden}按下我 如果一个交互元素使用 display:none; 来隐藏,那麽它对应的可访问性也将一并被删除,这样,在可交互元素上使用 aria-hidden="true" 就没有必要了。
(5)ARIA使用规则五
所有交互元素都必须有一个可访问的名称。当可交互元素的可访问性API的可访问名属性只有一个值时,那麽可交互元素就只有一个可访问的名称。
例如:input type="text"有一个可见的 标签,但它并没有可访问的名称:
user name
或者:user name
所以我们必须加上一个可访问名并进行联动操作:
user name
四、无障碍网页ARIA Roles值示意及说明表属性工作表
ARIA Roles值示意及说明表属性工作表
Role值
含义
Html示例
示例说明
alert
表示警告
情况一:
内容
情况二:
内容
tabindex主要用於键盘聚焦的作用
情况一屏幕阅读器提示:警告
情况二:加入title可以提高标签的可读性,屏幕阅读器提示:无障碍警告
alertdialog
表示对话方块
情况一:
内容
情况二:
内容
情况三:
tabindex主要用於键盘聚焦的作用
情况一屏幕阅读器提示:对话方块
情况二:加入title可以提高标签的可读性,屏幕阅读器提示:无障碍对话方块
情况三:alertdialog多与aria-labelledby相结合使用於弹出对话方块,主要的用法是将aria-labelleby和p标签中的id进行联动操作,屏幕阅读器提示:弹出框对话方块
application
表示主视窗(应用)
情况一:
内容
情况二:
内容
情况三:
tabindex主要用於键盘聚焦的作用
情况一屏幕阅读器提示:主窗口
情况二:加入title可以提高标签的可读性,屏幕阅读器提示:无障碍主窗口
情况三:application常与自订的时间选择器相结合使用
button
表示按钮
情况一:
标题
情况二:
标题
tabindex主要用於键盘聚焦的作用
情况一屏幕阅读器提示:标题按下按钮
情况二:title应该学会巧用,否则会使屏幕阅读器读出的内容造成混乱现象,屏幕阅读器提示:标题按下按钮提示
checkbox
表示核取方块
情况一:
内容
情况二:
内容
情况三:
tabindex主要用於键盘聚焦的作用
role=”group”表示组
aria-checked=”true”表示已选中,aria-checked=”false”表示未选中,
aria-checked=”mixed”表示未选中默认选中
情况一屏幕阅读器提示:内容核取方块已选中
情况二:title应该学会巧用,否则会使屏幕阅读器读出的内容造成混乱现象,屏幕阅读器提示:内容核取方块已选中提示
情况三:checkbox常用於核取方块组,屏幕阅读器提示:水果核取方块未选中默认选中,苹果核取方块未选中......
combobox
表示下拉式列示方块
情况一:
内容
情况二:
tabindex主要用於键盘聚焦的作用
aria-autocomplete="inline"用户的文字方块的自动提示支援提供
aria-expanded=”true”表示展开状态
role=”listbox”表示清单方块
role=”option”表示选项
情况一屏幕阅读器提示:下拉式列示方块内容
情况二:aria-owns和ul标签中的id进行了联动操作
grid
表示表格(网格)
情况一:
内容
情况二:
内容
情况三:
tabindex主要用於键盘聚焦的作用
aria-readonly唯读,默认为false
aria-readonly="false"表示元素可以被修改;
aria-readonly="true"表示元素不能被修改;
情况一屏幕阅读器提示:表格
情况二:屏幕阅读器提示:无障碍表格必填项
情况三:grid常用於表格头部,aria-labelldby和caption标签中的id进行了联动操作
gridcell
表示储存格(网格单元)
情况一:
内容
情况二:
内容
情况三:
tabindex主要用於键盘聚焦的作用
aria-readonly唯读,默认为false
aria-readonly="false"表示元素可以被修改;
aria-readonly="true"表示元素不能被修改;
aria-selected="false"表示未选中
aria-selected="true"表示已选中
role=”row”表示行
情况一屏幕阅读器提示:储存格
情况二:屏幕阅读器提示:无障碍储存格必填项
情况三:gridcell常用于表单中的储存格
group
表示分组(组合)
情况一:
内容
情况二:
内容
情况三:
tabindex主要用於键盘聚焦的作用
aria-checked=”true”表示已选中,aria-checked=”false”表示未选中,
aria-checked=”mixed”表示未选中,
role="checkbox"表示核取方块
情况一屏幕阅读器提示:分组
情况二:屏幕阅读器提示:无障碍分组必填项
情况三:group常用於分组
heading
表示应用程式标题头
2012年3月
aria-live="assertive"表示的是当用户选择了新的时间的时候,尽快通知用户时间发生了变更。
aria-atomic="true"表示当时间改变的时候,这里的年月日期要完整播放,不要只改了月份就只报月份内容。
heading常用於时间选择器中的月份标题
listbox
表示列表(清单方块)
情况一:
内容
情况二:
内容
情况三:
tabindex主要用於键盘聚焦的作用
aria-autocomplete="inline"用户的文字方块的自动提示支援提供
aria-expanded=”true”表示展开状态
role=”combobox”表示下拉式列示方块
role=”option”表示选项
情况一:屏幕阅读器提示:列表
情况二:屏幕阅读器提示:无障碍列表必填项
情况三:aria-owns和ul标签中的id进行了联动操作
log
表示用户端(日志记录)
情况一:
内容
情况二:
内容
情况三:
内容
tabindex主要用於键盘聚焦的作用
aria-atomic="false" :表示只需要通报修改的部分;
aria-relevant="additions":表示新增节点的时候做出反应
情况一:屏幕阅读器提示:用户端
情况二:屏幕阅读器提示:无障碍用户端必填项
情况三:当日志内容有添加的时候做出反应。类似三国杀右侧记录战事区域;或是比赛文字直播记录区域。
menu
表示菜单
tabindex主要用於键盘聚焦的作用
role="menubar":功能表列;
role="menuitem":功能表项目;
role="menuitemradio":只能单选的功能表项目;
aria-haspopup="true":点击的时候会出现功能表或浮动元素;
aria-haspopup="false":没有出现菜单或浮动效果;
aria-hidden="true":正常显示,但是不能通过聚焦读出里面的内容;
aria-hidden="false":正常显示且能通过聚焦读出里面的内容;
aria-checked="true":选中
aria-checked="false":未选中
menubar
表示功能表列
tabindex主要用於键盘聚焦的作用
role="menu":菜单;
role="menuitem":功能表项目;
role="menuitemradio":只能单选的功能表项目;
aria-haspopup="true":点击的时候会出现功能表或浮动元素;
aria-haspopup="false":没有出现菜单或浮动效果;
aria-hidden="true":正常显示,但是不能通过聚焦读出里面的内容;
aria-hidden="false":正常显示且能通过聚焦读出里面的内容;
aria-checked="true":选中
aria-checked="false":未选中
menuitem
表示功能表项目
tabindex主要用於键盘聚焦的作用
role="menu":菜单;
role="menubar":功能表列;
role="menuitemradio":只能单选的功能表项目;
aria-haspopup="true":点击的时候会出现功能表或浮动元素;
aria-haspopup="false":没有出现菜单或浮动效果;
aria-hidden="true":正常显示,但是不能通过聚焦读出里面的内容;
aria-hidden="false":正常显示且能通过聚焦读出里面的内容;
aria-checked="true":选中
aria-checked="false":未选中
menuitemcheckbox
表示可复选的功能表项目
tabindex主要用於键盘聚焦的作用
role="menu":菜单;
role="menubar":功能表列;
role="menuitem":功能表项目;
aria-haspopup="true":点击的时候会出现功能表或浮动元素;
aria-haspopup="false":没有出现菜单或浮动效果;
aria-hidden="true":正常显示,但是不能通过聚焦读出里面的内容;
aria-hidden="false":正常显示且能通过聚焦读出里面的内容;
aria-checked="true":选中
aria-checked="false":未选中
menuitemradio
表示只能单选的功能表项目
tabindex主要用於键盘聚焦的作用
role="menu":菜单;
role="menubar":功能表列;
role="menuitem":功能表项目;
aria-haspopup="true":点击的时候会出现功能表或浮动元素;
aria-haspopup="false":没有出现菜单或浮动效果;
aria-hidden="true":正常显示,但是不能通过聚焦读出里面的内容;
aria-hidden="false":正常显示且能通过聚焦读出里面的内容;
aria-checked="true":选中
aria-checked="false":未选中
option
表示选项
tabindex主要用於键盘聚焦的作用
aria-autocomplete="inline"用户的文字方块的自动提示支援提供
aria-expanded=”true”表示展开状态
role="combobox" :下拉式列示方块
role=”listbox”:清单方块
aria-owns和ul标签中的id进行了联动操作
presentation
表示称述
45
tabindex主要用於键盘聚焦的作用
aria-valuenow="45" :当前值为45
aria-valuemax="100":允许最大值100
aria-valuemin="0":允许最小值0
role="slider":滑动条
presentation多用於自订的滑动条。而role="presentation"所在div显示的就是当前滑动位置对应的值。
progressbar
表示进度条
tabindex主要用於键盘聚焦的作用
aria-valuenow="0" :当前值为0
aria-valuemax="100":允许最大值100
aria-valuemin="0":允许最小值0
aria-hidden="false":正常显示且能通过聚焦读出里面的内容
屏幕阅读器提示:进度栏0
radio
表示单选
tabindex主要用於键盘聚焦的作用
role="radiogroup":单选组
aria-checked="false":未选中
aria-checked="true":已选中
radio自订单选框控制项的时候使用
radiogroup
表示单选组
tabindex主要用於键盘聚焦的作用
role="radio":单选
aria-checked="false":未选中
aria-checked="true":已选中
region
表示区域
aria-expanded="false":表示元素不是展开的
region可用在div区域显示隐藏切换的时候
row
表示行
tabindex主要用於键盘聚焦的作用
aria-readonly唯读,默认为false
aria-readonly="false"表示元素可以被修改;
aria-readonly="true"表示元素不能被修改;
aria-selected="false"表示未选中
aria-selected="true"表示已选中
role=”grid”表示网格
role=”gridcell”表示网格单元
row用在表格类比的行清单上,对应table下面的tr标签
separator
表示分隔
tabindex主要用於键盘聚焦的作用
role="menu":菜单;
role="menubar":功能表列;
role="menuitem":功能表项目;
role="menuitemradio":只能单选的功能表项目;
aria-haspopup="true":点击的时候会出现功能表或浮动元素;
aria-haspopup="false":没有出现菜单或浮动效果;
aria-hidden="true":正常显示,但是不能通过聚焦读出里面的内容;
aria-hidden="false":正常显示且能通过聚焦读出里面的内容;
aria-checked="true":选中
aria-checked="false":未选中
separator的使用主要是用一条黑色的1图元水准分隔线分隔选项
slider
表示滑动条
45
tabindex主要用於键盘聚焦的作用
aria-valuenow="45" :当前值为45
aria-valuemax="100":允许最大值100
aria-valuemin="0":允许最小值0
role="presentation":称述
spinbutton
表示微调(即商品数量上下按钮微调件数)
aria-valuemin="0" aria-valuemax="100" aria-valuenow="45" tabindex="0">
45
tabindex主要用於键盘聚焦的作用
aria-valuenow="45" :当前值为45
aria-valuemax="100":允许最大值100
aria-valuemin="0":允许最小值0
屏幕阅读器提示微调下拉式列示方块45
tab
表示标签
tabindex主要用於键盘聚焦的作用
role="tablist":标签列表
aria-selected="true"已选中
aria-selected="false"未选中
tab主要应用於选项卡
tablist
表示标签列表
tabindex主要用於键盘聚焦的作用
role="tab":标签
aria-selected="true"已选中
aria-selected="false"未选中
tab主要应用於选项卡组
tabpanel
表示标签面板
role="tablist":表明ul是一个选项卡清单;
aria-labelledby:多用於绑定id,提示标签资讯;
timer
表示计数
0
aria-atomic="true":辅助设备需要把整个区域内容都通报给使用者
aria-relevant="additions":表示新增节点的时候做出反应;
aria-relevant="removals":表示删除节点时重要操作;
aria-relevant="text":表示文本改变是值得重视的;
aria-relevant="all":all等同於同时使用上面三个属性值。
类比计数器,使用在动态显示规律数值变化的地方
屏幕阅读器提示:时钟
toolbar
表示工具列
情况一:
内容
情况二:
tabindex主要用於键盘聚焦的作用
aria-activedescendant:後代元素的id值,该属性定义了当工具列获取焦点时,哪一个工具列的子控制项获取了焦点。
情况一:屏幕阅读器提示:工具列
tooltip
表示提示文本
情况一:
内容
情况二:
tabindex主要用於键盘聚焦的作用
aria-labelledby:多用於绑定id,提示标签资讯;
aria-describedby:属性定义了文档结构表现不出来的的元素间的相互关联性。该属性旨在通过标签提供更多使用者可能需要的资讯。如果指定了不只一个id, 所有元素会合并在一起共同创建一条单独的描述;
aria-required="false":元素值可以为空;
aria-hidden="true":正常显示,但是不能通过聚焦读出里面的内容;
情况一:屏幕阅读器提示:工具提示
tree
表示树形
情况一:
内容
情况二:
水果
动物
tabindex主要用於键盘聚焦的作用
aria-expanded="true":表示展开状态;
aria-expanded="false":表示元素不是展开;
role="treeitem":树结构选项;
role="group":组;
情况一:屏幕阅读器提示:树示图
treeitem
表示树结构选项
水果
动物
tabindex主要用於键盘聚焦的作用
aria-expanded="true":表示展开状态;
aria-expanded="false":表示元素不是展开;
role="tree":表示树形;
role="group":组;
五、无障碍网页ARIA属性值示意及说明表
ARIA属性值示意及说明表
ARIA属性值
含义
Html示例
示例说明
aria-activedescendant
表示後代元素的id值。
aria-activedescendant 属性定义了当工具列获取焦点时,哪一个工具列的子控制项获取了焦点。在此HTML示例中,工具列的第一个控制项(拥有id“button1″)是能获取焦点的子控制项。
aria-atomic
字串。表示区域内容是否完整播报。值可以为true和false。当为true时,表示辅助设备需要把整个区域内容都通报给使用者;如果为false则表示只需要通报修改的部分。
2012年 3月
例如时间选择器年月标题。这里的aria-atomic为true则表示当时间改变的时候,这里的年月日期要完整播放,不要只改了月份就只报月份内容。
aria-autocomplete
字串。表示用户的文字方块的自动提示是否提供。可选值有:inline, list,
both, none
aria-autocomplete="list",
aria-autocomplete="inline或aria-autocomplete="both"被设置在支援autocomplete的元素上,则autocomplete的属性值需要设成"on", 如果是aria-autocomplete="none",则需要设成"off"
aria-busy
字串。表当前区域的忙碌状态。预设为false, 表清除busy状态;可选为true, 表该区域正在载入;或为error, 表示该区域验证无效。
如果某个区域内(如这里ul)有多个地方需要修改,需要全部修改完毕再通知使用者的话,就可以先将aria-busy设为true, 等到全部内容更新完毕後再设成false. 该属性可以避免辅助工具在区域内容更新完毕前不断即时提醒使用者。
aria-controls
字串。空格分隔的id属性值清单。
aria-expanded="true" role="tab" tabindex="0">水果
该属性定义了元素间不能通过文档结构决定的关联关系。ariaControls属性主要被role为group, region, 或widget的元素使用。
aria-describedby
字串。空格分隔的id属性值清单。
该属性定义了文档结构表现不出来的的元素间的相互关联性。该属性旨在通过标签提供更多使用者可能需要的资讯。如果指定了不只一个id, 所有元素会合并在一起共同创建一条单独的描述。
aria-dropeffect
字串。表示拖拽效果。可选值有:copy, move, reference, execute, popup, none, 依次表示:复制,移动,参照,执行,弹出以及没有效果
该属性用在拖拽上。
aria-flowto
字串。空格分隔的id值们
如果该属性值对应的是单独的id, 辅助技术会恢复目标元素的阅读;如果对应的是多个id, 则辅助技术会让用户去选择、导航到目标元素。
aria-grabbed
字串。拖拽中元素的捕获状态。可选值有:true, false, undefined. 预设为undefined,表示元素捕获状态未知。true表示元素可以捕获;false表示不能被捕获。
该属性用在拖拽上。类似於HTML5中的draggable属性。
aria-haspopup
字串。true表示点击的时候会出现功能表或是浮动元素; false表示没有pop-up效果。
水果
苹果
aria-label
用於提示标签资讯
情况一:
情况二:
情况三:
情况四:
一周内记住登录帐号
input标签可通过Tab键进行聚焦,如情况一,屏幕阅读器提示:可编辑文本;
若在input标签中加入aria-label,如情况二,屏幕阅读器提示:提示内容可编辑文本
若在input标签中同时加入aria-label和value,如情况三,屏幕阅读器提示:提示内容可编辑文本编辑内容
form表单中如何存在情况四的不规范的核取方块情况,也可以使用aria-label标签
aria-labelledby
多用於绑定id,提示标签资讯
role="alertdialog"表明该div是一个对话方块,div标签中的aria-labelledby与h3标签中的id保存一致,这样就可以提示div标签的资讯,屏幕阅读器提示:标题对话方块
aria-level
数值。表示等级
次标题
HTML类似於
标题
aria-live
字串。可选值有:off, polite, assertive, rude。默认为off, 表示不宣布更新;polite表示只有用户闲时宣布;assertive表示尽快对用户宣布;rude表示即时提醒用户,必要的时候甚至中断用户。
2012年3月
绝大多数的更新应该在用户闲暇的时候告知,即时提示对用户是一种干扰。如果希望内容完全更新後再提示,可以使用上面提到的aria-busy.
上面的HTML为时间选择控制项的年月标题部分,aria-live="assertive"表示的是当用户选择了新的时间的时候,尽快通知用户时间发生了变更。
aria-multiselectable
字串。表示是否可多选。默认为false, 表示一次只能选择一个项。true表示一次可以选择多个项
例如手风琴展开收起效果,我们可以使用aria-multiselectable来告知辅助设备,一次可以展开多个项还是只有一个展开。
aria-owns
字串。值为目标元素id
aria-owns表示元素所拥有的,这里这里的文字方块拥有其对应的下拉清单。
aria-posinset
数值。表示当前位置
用在设置和获取一个集合内某项的当前位置。
aria-readonly
字串。表示是否唯读。预设为false, 表示元素值可以被修改;true表示元素指不能被改变。
水果
aria-relevant
字串。表示区域内哪些操作行为需要做出反应。可选值有:additions, removals, text, all,可以空格分隔多个一起显示. additions表示新增节点的时候做出反应;removals表示删除节点时重要操作;text表示文本改变是值得重视的;all等同於同时使用上面三个属性值
内容
HTML表示当日志内容有添加的时候做出反应。
aria-required
字串。元素值是否必需。预设为false, 表示元素值可以为空;true表示元素值是必需的
多半用在表单控制项中。对应HTML5中required属性。
aria-secret
字串。表示机密状态
aria-setsize
数值。设置的尺寸大小值
aria-sort
字串。表示表格或格栅中的项是以昇幂排列还是降幂排列。可选值:ascending(↑),
descending(↓), none, other.
Widget元件应用属性。
aria-valuemax
数值。表允许的最大值
45
用在范围组件上。对应於HTML5中的max属性。
aria-valuemin
数值。表允许的最小值
45
用在范围组件上。对应於HTML5中的min属性。
aria-valuenow
数值。表示当前值
45
用在范围组件上。对应於value属性。
aria-valuetext
字串。定义等同於aria-valuenow人可读的文本
用在范围组件上。
六、无障碍网页ARIA状态值示意及说明表
ARIA状态值示意及说明表
ARIA状态值
含义
Html示例
示例说明
aria-checked
字串。表示检查的状态。true表示元素被选择;false表示元素未被选择;mixed表示元素同时有选择和未选择状态
该属性用来表明使用者是否选择了某些项。
aria-disabled
字串。表禁用状态,true表示当前是非启动状态;false表示清除非启动状态
对应单核取方块等控制项的disabled属性,一般用在自订类比控制项中。
aria-expanded
字串。表示展开状态。预设为undefined, 表示当前展开状态未知。其它可选值:true表示元素是展开的;false表示元素不是展开的
在手风琴交互效果中标示展开与否的状态。该属性对应HTML5的open属性。
aria-hidden
字串。可选值为true和false, true表示元素隐藏(不可见),false表示元素可见
水果
苹果
该属性使用非常普遍。几乎所有涉及到显示与隐藏这类交互或没有交互的地方都可以应用该属性。左边的示例HTML代码来自进度条进度值显示的div, 当前aria-hidden为false, 表示该进度值是可见的。
aria-invalid
字串。表示元素值是否错误的。默认为false, 表示是OK的,如果为true, 则表示值验证不通过
aria-pressed
字串。表示按下的状态,可选值有:true, false, mixed, undfined.预设为undfined, 表示按下状态未知;true表示元素往下(按钮按下);false表示元素抬起;mixed表示元素同时有按下和没有按下的状态
HTML表示按钮已经按下,同时处於禁用状态。
aria-selected
字串。表示选择状态。可选值有:true, false, undefined. 预设为undefined,表示元素选择状态未知。true表示元素已选择;false表示未被选中。
元素被选中表明其处於某种交互之中,因此选中元素很可能处於focus焦点获取状态。
参考:
(1) http://www.zhangxinxu.com/wordpress/2012/03/wai-aria-%E6%97%A0%E9%9A%9C%E7%A2%8D%E9%98%85%E8%AF%BB/#ariaAttr
(2) http://www.alloyteam.com/2012/10/how-to-develop-accessible-web-site-application/
(3) http://zzc1684.iteye.com/blog/2218090
(4) https://prc.cx/web/archives/13.html
(5) Web内容无障碍指南 (WCAG) 2.1
你可能感兴趣的:(html5,elementui,javascript)
深度解析JavaScript 闭包
coding随想
JavaScript javascript 开发语言 ecmascript
深度解析JavaScript闭包引言:为什么闭包让人又爱又怕?在JavaScript的学习过程中,闭包(Closure)是一个绕不开的“坎”。很多开发者第一次接触闭包时,会感到一头雾水:“为什么函数能记住外部作用域的变量?”、“为什么闭包会导致内存泄漏?”。但另一方面,闭包又是JavaScript最强大的特性之一,它支撑着模块化开发、数据封装、异步编程等核心场景。本文将通过通俗的语言和生动的案例,
JavaScript中的函数柯里化(Currying):从概念到实战
coding随想
JavaScript javascript ecmascript 开发语言 前端
JavaScript中的函数柯里化(Currying):从概念到实战在JavaScript开发中,函数式编程(FunctionalProgramming)逐渐成为一种主流思想。而函数柯里化(Currying),正是这一思想中的核心技巧之一。它不仅能提升代码的复用性和灵活性,还能帮助我们构建更优雅、更模块化的解决方案。本文将带你从零开始,深入理解柯里化的原理、实现方式及实际应用场景。一、什么是函数柯
webpack和vite区别
PromptOnce
webpack 前端 node.js
一、Webpack1.概述Webpack是一个模块打包工具,它会递归地构建依赖关系图,并将所有模块打包成一个或多个bundle(包)。2.特点配置灵活:Webpack提供了高度可定制的配置文件,可以根据项目需求进行各种优化。生态系统丰富:Webpack拥有庞大的插件和加载器生态系统,可以处理各种资源类型(JavaScript、CSS、图片等)。支持代码拆分:通过代码拆分和懒加载,Webpack可以
javascript 动态画心加文字
das白
# javascript javascript 动态 心型线 文字
测试//铺满屏幕varwidth=document.documentElement.clientWidth;varheight=document.documentElement.clientHeight;document.getElementById("gycanvas").setAttribute("width",width);document.getElementById("gycanvas"
javascript 动态画心
das白
# javascript javascript 动态 心型线
测试canvas{background:lawngreen;//画布背景色}//铺满屏幕varwidth=document.documentElement.clientWidth;varheight=document.documentElement.clientHeight;document.getElementById("gycanvas").setAttribute("width",width
javascript 画心型线
测试canvas{background:lawngreen;//画布背景色}//铺满屏幕varwidth=document.documentElement.clientWidth;varheight=document.documentElement.clientHeight;document.getElementById("gycanvas").setAttribute("width",width
掌握Web3开发:从入门到精通
夲奋亻Jay
Web3 web3
掌握Web3开发是一个涉及多个步骤和学习阶段的过程。以下是一些关键的步骤和开发案例,以及它们在搜索结果中的索引编号:了解区块链基础:学习区块链的基本概念,如去中心化、加密技术、共识机制等[1]。学习智能合约:学习智能合约的工作原理和它们在区块链上的应用,特别是以太坊平台上的智能合约[1]。掌握Web3.js或Ethers.js:学习如何使用这些JavaScript库与智能合约交互、发送交易和监听事
JavaScript性能优化
lyh1344
javascript 性能优化 开发语言
JavaScript性能优化方法减少重绘和回流频繁操作DOM会导致浏览器反复计算布局,引发性能问题。使用documentFragment进行批量DOM操作,或通过classList一次性修改多个样式属性。缓存DOM查询结果,避免重复访问。事件委托利用事件冒泡机制,将事件监听器绑定到父元素而非多个子元素。减少内存占用,提升动态内容的事件处理效率。节流与防抖高频事件(如滚动、输入)通过节流(Throt
什么是Node.js,有什么特点
前端与小赵
node.js
Node.js简介Node.js是一个基于ChromeV8引擎的JavaScript运行时环境,由RyanDahl于2009年创建。Node.js允许开发者使用JavaScript编写服务器端应用程序,打破了JavaScript仅限于浏览器端的限制。Node.js的设计目标是提供一种简单、高效的方式来构建可伸缩的网络应用。Node.js的特点非阻塞I/O特点:Node.js使用事件驱动的非阻塞I/
Node.js到底是什么
浪裡遊
杂文 node.js php 开发语言 前端 javascript vue.js
我想像是npm、vite这些名词大家都很熟悉,对它们的作用也有大致印象,但是可能都像我一样不明白Node.js到底是什么,这里给大家带来一个简单介绍。Node.js详解:历史发展、生态构建与底层原理一、Node.js的起源与历史发展诞生背景2009年5月:Node.js由RyanDahl开发并首次发布。其核心目标是解决JavaScript仅限于浏览器端运行的局限性,通过ChromeV8引擎(Jav
【Html实现“心形日出”(附效果+源代码)】| JavaScript面试题:解释一下异步编程中的回调函数、Promise和Async/Await的概念。它们有什么区别?
追光者♂
html5 css3 心形日出 前端特效 JS面试题 Promise Async/Await
风会带走你曾经存在过的证明。——虞姬作者主页:追光者♂个人简介:[1]计算机专业硕士研究生[2]2023年城市之星领跑者TOP1(哈尔滨)[3]2022年度博客之星人工智能领域TOP4[4]阿里云社区特邀专家博主[5]CSDN-人工智能领域优质创作者无限进步,一起追光!!!
ElementUI 轮播图片自适应大小
z-min
Element
今天学习了Element的轮播组件,然后用它做了一个demo,但发现一个问题,它的轮播高度是固定的,我现在想让轮播的高度根据图片自适应大小,网上查了一些方法,大致就是先获取图片的高度,然后把它设为轮播的高度,但是很多方法都少了关键的一点this.$nextTick()
【ElementUI】日期选择器时间选择范围限制
前端Joy姐
element UI
ElementUI是饿了么推出的一套基于vue2.x的一个ui框架。官方文档也很详细,这里做一个element-ui日期插件的补充。官方文档中使用picker-options属性来限制可选择的日期,这里举例子稍做补充。单个输入框的组件代码:情景1:设置选择今天以及今天之后的日期data(){return{pickerOptions0:{disabledDate(time){returntime.g
elementUI轮播图组件el-carousel适配移动端大小(图片加载好后根据大小适配)
printf_824
elementui javascript vue.js
获取img实例,动态设置el-carousel高度import{ref,onMounted,onBeforeUnmount,nextTick}from'vue';constbanners=ref(['/images/banner/banner1.png','/images/banner/banner1.png','/images/banner/banner1.png','/images/banne
HTML中引入JavaScript的三种方式
北冥郇翔
javascript html 前端
在HTML中引入JavaScript主要有以下三种方式,每种方式都有其适用场景和注意事项:1.内嵌方式(在标签内直接编写代码)直接在HTML文件的或中使用标签编写JavaScript代码。特点:代码与HTML混合,适用于简单逻辑或快速测试。alert()等函数会阻塞HTML页面渲染(如引用[1]所示)。示例:window.alert("页面加载被阻塞!");//阻塞后续内容渲染2.外部引入方式(推
ECharts 数据集(Dataset)
沐知全栈开发
开发语言
ECharts数据集(Dataset)引言ECharts是一个使用JavaScript实现的开源可视化库,它能够将数据通过丰富的图表形式展示出来。在ECharts中,数据集(Dataset)是一个非常重要的概念,它负责存储图表所需的数据。本文将详细介绍ECharts数据集(Dataset)的相关知识,包括其定义、作用、类型以及使用方法。数据集的定义数据集(Dataset)是ECharts中用于存储
Python+Playwright(0)
黑米粥✎
python 开发语言 自动化
简介Playwright是一个强大的自动化库,由微软开发,主要用于web端UI自动化测试,支持python、java、JavaScript、C#等多种编程语言。Playwright仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作,不仅支持无头模式和有头模式,还提供了代码录制的功能,极大提高了脚本编写的效率,并支持移动端自动化测试。Playwright相
谷歌离线应用之渐进式 Web 应用 Progressive Web APP(PWA)
伍哥的传说
前端源码分享 前端 web app
一、渐进式Web应用(PWA)的定义渐进式Web应用(ProgressiveWebApp,PWA)是一种结合传统Web技术与现代移动应用特性的技术方案,旨在通过HTML、CSS和JavaScript构建具备原生应用体验的Web应用。其核心特性包括:可安装性:用户可将PWA添加到设备主屏幕,像原生应用一样独立运行;渐进增强:根据设备和网络环境逐步提升功能,确保基础功能在所有浏览器中可用
JavaScript性能优化实战
周盛欢
javascript 性能优化 开发语言
嘿,小伙伴们!今天咱们来聊聊JavaScript性能优化。你可能觉得这听起来很复杂,但别怕,我保证用最简单的方式给你讲清楚,就算你是0基础也没问题!一、为啥要优化JavaScript性能?想象一下,你在网上冲浪,点开一个网页,结果半天加载不出来,或者页面卡得像蜗牛爬,那心情是不是超级糟糕?这就是性能问题惹的祸。而JavaScript是网页里很重要的部分,它能让网页动起来、交互起来,但如果写得不好,
【架构】vue-cli集成electron
Fiz-EIM官方
架构 架构 vue.js electron
一、引言在文章开始之前,需要先介绍一下webpack和electron;Webpack:是一个用于现代JavaScript应用程序的静态模块打包工具。Electron:Electron是一个使用JavaScript、HTML和CSS构建桌面应用程序的框架。当遇到需要将原本是web端的应用打包成桌面端的需求时,就可以采用webpack+electron的方式来开发桌面端,这种方式有以下四点好处:原项
箭头函数和普通函数的区别?
=^_^=喵喵
javascript 开发语言
箭头函数(ArrowFunctions)和普通函数(传统函数)在JavaScript中有显著的区别,主要体现在语法、this的绑定、构造函数行为、参数处理等方面。以下是详细对比:1.语法差异普通函数:functionadd(a,b){returna+b;}或函数表达式:constadd=function(a,b){returna+b;};箭头函数(更简洁):constadd=(a,b)=>a+b;
浅说深拷贝(Deep Copy)与浅拷贝(Shallow Copy)
=^_^=喵喵
javascript 前端 开发语言
在JavaScript中,深拷贝和浅拷贝是两种不同的数据复制方式,主要区别在于如何处理引用类型数据(如对象、数组)。1.浅拷贝(ShallowCopy)定义:只复制对象的第一层属性,如果属性是引用类型(如对象、数组),则复制的是引用,而不是实际数据。特点:原始对象和拷贝后的对象共享引用类型的属性。修改其中一个对象的引用类型属性会影响另一个对象。实现方式:Object.assign()(仅第一层深拷
使用JavaScript构建交互式Web页面:从基础到高级功能(附带实现代码~)
一ge科研小菜菜
Java 前端开发 javascript
个人主页:一ge科研小菜鸡-CSDN博客期待您的关注1.引言JavaScript作为现代网页设计的核心技术之一,已发展成为前端开发中必不可少的编程语言。随着互联网的不断进化,用户对网页体验的需求日益增长,开发者需要借助JavaScript来实现页面动态交互、用户界面更新和复杂的数据操作。JavaScript的生态系统也日趋完善,从基础的ES6+特性到各种强大的前端框架如React、Vue和Angu
html5路由如何在nginx上部署(vite+vue3)
大眼小夫
html5 nginx 前端
我们知道前端常用的有Hash模式和html5模式的路由,hash模式在nginx上部署不需要额外的操作,而html5模式则需要额外设置,这里介绍下如何在nginx根地址(location/{})下部署和在非根地址上(location/admin{})部署。在这之前,我先说一下为什么html5路由需要在nginx上配置,我们知道,vue-router就是用来处理路由的,我我们在浏览器上输入地址时,这
JavaScript原型链深度剖析
aike13ky
javascript 开发语言
目录前言一、原型链1.原型链的主要组成原型(Prototype)构造函数(Constructor)实例(Instance)2.原型链的工作原理前言在JavaScript的世界中,原型链(PrototypeChain)是一个核心概念,它决定了对象如何继承属性和方法。对于初学者来说,理解原型链可能是个挑战,但一旦掌握了它,就能更好地利用JavaScript的动态性和灵活性。本篇文章将详细探讨JavaS
HarmonyOs开发之——TypeScript介绍、入门,及 TypeScript、JavaScript、ArkTs的具体区别解读。
chenrui310
ubuntu linux 运维
HarmonyOs开发之——TypeScript介绍、入门,及TypeScript、JavaScript、ArkTs的具体区别解读。一、开发语言介绍:TypeScript是JavaScript的超集,ArkTS则是TypeScript的超集。ArkTs是HarmonyOs的主力开发语言,它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发
Array.reduce
咔咔咔索菲斯
javascript 前端
Array.reduce()是JavaScript中用于将数组元素累积计算为单个值的高阶函数,其核心作用是对数组中的每个元素执行一个累加器函数,最终返回累积结果。以下是详细用法和示例:一、基本语法array.reduce((accumulator,currentValue,currentIndex,array)=>{//累加逻辑returnnewAccumulator;},initialValue
Python JSON 模块的基本使用(41)
Android 小码峰啊
Python入门 python json 服务器
PythonJSON模块的基本使用一、引言在当今数字化的时代,数据的交换和存储变得至关重要。不同的应用程序和系统之间需要一种通用的数据格式来进行数据的传输和共享。JSON(JavaScriptObjectNotation)作为一种轻量级的数据交换格式,因其易于阅读和编写,同时也易于机器解析和生成,成为了广泛使用的数据格式之一。Python作为一门功能强大且应用广泛的编程语言,提供了json模块来方
深入理解CSRF攻击与防护机制
布兰妮甜
javascript csrf 防护机制 前端
Hi,我是布兰妮甜!在当今高度互联的Web应用环境中,安全威胁无处不在。CSRF(跨站请求伪造)作为一种常见的Web安全漏洞,长期位居OWASPTop10安全威胁榜单。这种攻击方式利用了网站对用户浏览器的信任,可能导致用户在不知情的情况下执行非预期的操作,如资金转账、密码更改等。本文将深入剖析CSRF攻击原理,详细介绍多种有效的防护机制,并提供实用的JavaScript代码示例,帮助开发者构建更加
【前端】JS模块化解析-ESModule
果壳~
javascript 前端 开发语言
目录基本介绍基本使用导入导出方式3种结合使用default用法import函数ESModule的解析流程导入的变量无法,导入方无法修改导出的变量,只能由导出方进行修改如果确实想在导入这边对导出的值进行修改,可以自定义set回调函数CommonJS和ESModule相互引用实验一下基本介绍JavaScript没有模块化一直是它的痛点,所以才会产生我们前面学习的社区规范:CommonJS、AMD、CM
怎么样才能成为专业的程序员?
cocos2d-x小菜
编程 PHP
如何要想成为一名专业的程序员?仅仅会写代码是不够的。从团队合作去解决问题到版本控制,你还得具备其他关键技能的工具包。当我们询问相关的专业开发人员,那些必备的关键技能都是什么的时候,下面是我们了解到的情况。
关于如何学习代码,各种声音很多,然后很多人就被误导为成为专业开发人员懂得一门编程语言就够了?!呵呵,就像其他工作一样,光会一个技能那是远远不够的。如果你想要成为
java web开发 高并发处理
BreakingBad
java Web 并发 开发 处理 高
java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。 一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(
mysql批量更新
ekian
mysql
mysql更新优化:
一版的更新的话都是采用update set的方式,但是如果需要批量更新的话,只能for循环的执行更新。或者采用executeBatch的方式,执行更新。无论哪种方式,性能都不见得多好。
三千多条的更新,需要3分多钟。
查询了批量更新的优化,有说replace into的方式,即:
replace into tableName(id,status) values
微软BI(3)
18289753290
微软BI SSIS
1)
Q:该列违反了完整性约束错误;已获得 OLE DB 记录。源:“Microsoft SQL Server Native Client 11.0” Hresult: 0x80004005 说明:“不能将值 NULL 插入列 'FZCHID',表 'JRB_EnterpriseCredit.dbo.QYFZCH';列不允许有 Null 值。INSERT 失败。”。
A:一般这类问题的存在是
Java中的List
g21121
java
List是一个有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
与 set 不同,列表通常允许重复
读书笔记
永夜-极光
读书笔记
1. K是一家加工厂,需要采购原材料,有A,B,C,D 4家供应商,其中A给出的价格最低,性价比最高,那么假如你是这家企业的采购经理,你会如何决策?
传统决策: A:100%订单 B,C,D:0%
&nbs
centos 安装 Codeblocks
随便小屋
codeblocks
1.安装gcc,需要c和c++两部分,默认安装下,CentOS不安装编译器的,在终端输入以下命令即可yum install gccyum install gcc-c++
2.安装gtk2-devel,因为默认已经安装了正式产品需要的支持库,但是没有安装开发所需要的文档.yum install gtk2*
3. 安装wxGTK
yum search w
23种设计模式的形象比喻
aijuans
设计模式
1、ABSTRACT FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:
开发管理 CheckLists
aoyouzi
开发管理 CheckLists
开发管理 CheckLists(23) -使项目组度过完整的生命周期
开发管理 CheckLists(22) -组织项目资源
开发管理 CheckLists(21) -控制项目的范围开发管理 CheckLists(20) -项目利益相关者责任开发管理 CheckLists(19) -选择合适的团队成员开发管理 CheckLists(18) -敏捷开发 Scrum Master 工作开发管理 C
js实现切换
百合不是茶
JavaScript 栏目切换
js主要功能之一就是实现页面的特效,窗体的切换可以减少页面的大小,被门户网站大量应用思路:
1,先将要显示的设置为display:bisible 否则设为none
2,设置栏目的id ,js获取栏目的id,如果id为Null就设置为显示
3,判断js获取的id名字;再设置是否显示
代码实现:
html代码:
<di
周鸿祎在360新员工入职培训上的讲话
bijian1013
感悟 项目管理 人生 职场
这篇文章也是最近偶尔看到的,考虑到原博客发布者可能将其删除等原因,也更方便个人查找,特将原文拷贝再发布的。“学东西是为自己的,不要整天以混的姿态来跟公司博弈,就算是混,我觉得你要是能在混的时间里,收获一些别的有利于人生发展的东西,也是不错的,看你怎么把握了”,看了之后,对这句话记忆犹新。 &
前端Web开发的页面效果
Bill_chen
html Web Microsoft
1.IE6下png图片的透明显示:
<img src="图片地址" border="0" style="Filter.Alpha(Opacity)=数值(100),style=数值(3)"/>
或在<head></head>间加一段JS代码让透明png图片正常显示。
2.<li>标
【JVM五】老年代垃圾回收:并发标记清理GC(CMS GC)
bit1129
垃圾回收
CMS概述
并发标记清理垃圾回收(Concurrent Mark and Sweep GC)算法的主要目标是在GC过程中,减少暂停用户线程的次数以及在不得不暂停用户线程的请夸功能,尽可能短的暂停用户线程的时间。这对于交互式应用,比如web应用来说,是非常重要的。
CMS垃圾回收针对新生代和老年代采用不同的策略。相比同吞吐量垃圾回收,它要复杂的多。吞吐量垃圾回收在执
Struts2技术总结
白糖_
struts2
必备jar文件
早在struts2.0.*的时候,struts2的必备jar包需要如下几个:
commons-logging-*.jar Apache旗下commons项目的log日志包
freemarker-*.jar  
Jquery easyui layout应用注意事项
bozch
jquery 浏览器 easyui layout
在jquery easyui中提供了easyui-layout布局,他的布局比较局限,类似java中GUI的border布局。下面对其使用注意事项作简要介绍:
如果在现有的工程中前台界面均应用了jquery easyui,那么在布局的时候最好应用jquery eaysui的layout布局,否则在表单页面(编辑、查看、添加等等)在不同的浏览器会出
java-拷贝特殊链表:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?
bylijinnan
java
public class CopySpecialLinkedList {
/**
* 题目:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?
拷贝pNext指针非常容易,所以题目的难点是如何拷贝pRand指针。
假设原来链表为A1 -> A2 ->... -> An,新拷贝
color
Chen.H
JavaScript html css
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD>&nbs
[信息与战争]移动通讯与网络
comsci
网络
两个坚持:手机的电池必须可以取下来
光纤不能够入户,只能够到楼宇
建议大家找这本书看看:<&
oracle flashback query(闪回查询)
daizj
oracle flashback query flashback table
在Oracle 10g中,Flash back家族分为以下成员:
Flashback Database
Flashback Drop
Flashback Table
Flashback Query(分Flashback Query,Flashback Version Query,Flashback Transaction Query)
下面介绍一下Flashback Drop 和Flas
zeus持久层DAO单元测试
deng520159
单元测试
zeus代码测试正紧张进行中,但由于工作比较忙,但速度比较慢.现在已经完成读写分离单元测试了,现在把几种情况单元测试的例子发出来,希望有人能进出意见,让它走下去.
本文是zeus的dao单元测试:
1.单元测试直接上代码
package com.dengliang.zeus.webdemo.test;
import org.junit.Test;
import o
C语言学习三printf函数和scanf函数学习
dcj3sjt126com
c printf scanf language
printf函数
/*
2013年3月10日20:42:32
地点:北京潘家园
功能:
目的:
测试%x %X %#x %#X的用法
*/
# include <stdio.h>
int main(void)
{
printf("哈哈!\n"); // \n表示换行
int i = 10;
printf
那你为什么小时候不好好读书?
dcj3sjt126com
life
dady, 我今天捡到了十块钱, 不过我还给那个人了
good girl! 那个人有没有和你讲thank you啊
没有啦....他拉我的耳朵我才把钱还给他的, 他哪里会和我讲thank you
爸爸, 如果地上有一张5块一张10块你拿哪一张呢....
当然是拿十块的咯...
爸爸你很笨的, 你不会两张都拿
爸爸为什么上个月那个人来跟你讨钱, 你告诉他没
iptables开放端口
Fanyucai
linux iptables 端口
1,找到配置文件
vi /etc/sysconfig/iptables
2,添加端口开放,增加一行,开放18081端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 18081 -j ACCEPT
3,保存
ESC
:wq!
4,重启服务
service iptables
Ehcache(05)——缓存的查询
234390216
排序 ehcache 统计 query
缓存的查询
目录
1. 使Cache可查询
1.1 基于Xml配置
1.2 基于代码的配置
2 指定可搜索的属性
2.1 可查询属性类型
2.2 &
通过hashset找到数组中重复的元素
jackyrong
hashset
如何在hashset中快速找到重复的元素呢?方法很多,下面是其中一个办法:
int[] array = {1,1,2,3,4,5,6,7,8,8};
Set<Integer> set = new HashSet<Integer>();
for(int i = 0
使用ajax和window.history.pushState无刷新改变页面内容和地址栏URL
lanrikey
history
后退时关闭当前页面
<script type="text/javascript">
jQuery(document).ready(function ($) {
if (window.history && window.history.pushState) {
应用程序的通信成本
netkiller.github.com
虚拟机 应用服务器 陈景峰 netkiller neo
应用程序的通信成本
什么是通信
一个程序中两个以上功能相互传递信号或数据叫做通信。
什么是成本
这是是指时间成本与空间成本。 时间就是传递数据所花费的时间。空间是指传递过程耗费容量大小。
都有哪些通信方式
全局变量
线程间通信
共享内存
共享文件
管道
Socket
硬件(串口,USB) 等等
全局变量
全局变量是成本最低通信方法,通过设置
一维数组与二维数组的声明与定义
恋洁e生
二维数组 一维数组 定义 声明 初始化
/** * */ package test20111005; /** * @author FlyingFire * @date:2011-11-18 上午04:33:36 * @author :代码整理 * @introduce :一维数组与二维数组的初始化 *summary: */ public c
Spring Mybatis独立事务配置
toknowme
mybatis
在项目中有很多地方会使用到独立事务,下面以获取主键为例
(1)修改配置文件spring-mybatis.xml <!-- 开启事务支持 --> <tx:annotation-driven transaction-manager="transactionManager" /> &n
更新Anadroid SDK Tooks之后,Eclipse提示No update were found
xp9802
eclipse
使用Android SDK Manager 更新了Anadroid SDK Tooks 之后,
打开eclipse提示 This Android SDK requires Android Developer Toolkit version 23.0.0 or above, 点击Check for Updates
检测一会后提示 No update were found