不管是否承认,flash早已不像过往那样如日中天了。亚马逊全面放弃flash、苹果放弃flash、安卓也放弃了移动端的flash支持。事实上flash已经不太适合web开发了,因为HTML5中的video和audio这两个API为web开发提供了更高效的音频视频控制。或许你可以看看[这篇文章][flash]。

video标签

为何需要多个格式的视频文件

在HTML5页面中,我们可以使用video标签来实现对视频文件的控制。但是在浏览器中打开视频并没那么简单,不仅浏览器要支持标签,而且还要有编码译码器来播放视频。显然最好的解决方式是HTML5规范规定一个统一的编码译码器,然后让浏览器制造商去执行。
但是,那些这些制造商的尿性大家都是知道的,HTML5规范到最后也没有制定一个统一的视频编码译码器标准。
最后的情况是,如果要考虑视频在不同浏览器下的兼容性,开发者就要考虑好些情况了:
- Opera、Mozilla、Chrome浏览器支持的Ogg Theora或者VP8编码译码器所能处理的
- Safari、IE高版本(9++)、Chrome支持的H.264
- IE低版本(8--)

而.MP4后缀的视频文件是带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件; WebM是 带有 VP8 视频编码和 Vorbis 音频编码的 WebM 文件;Ogg是带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件。

所以一般只需要Ogg、MP4和flv/swf格式的视频文件,也就是需要三个视频文件,就能完美地在各个浏览器间显示视频了。

当然,各浏览器支持一直在变动,所有脱离时间来谈支持的都是在耍流氓。可以在[caniuse][video]上查看下各浏览器对video的支持。

video标签的兼容代码

所以一般的<video>标签的内容,由简到繁的三种写法:
- 最简单的形式是:
```javascript

视频不支持时显示的文字

```
- 兼容Firefox的写法
```javascript

还用渣渣浏览器???

```

  • 兼容IE8的写法
<video width="400px" height="400px" controls>
<source src="video/ video.ogg" type="video/ogg" />
<source src="video/ video.mp4" type="video/mp4" />
<embed src="video/ movie.swf" type="application/x-shockwave-flash"
width="400" height="400px" allowscriptaccess="always" allowfullscreen="true"></embed>
抱歉,本站不欢迎你...
</video>

HTML5中媒体的类型(video和audio)

规定要检测的音频/视频类型(和可选的编解码器)。

常用值:

  • video/ogg
  • video/my4
  • video/webm
  • audio/mpeg
  • audio/ogg
  • audio/mp4

常用值,包括编解码器:

  • video/ogg; codecs="theora, vorbis"
  • video/mp4; codecs="avc1.4D401E, mp4a.40.2"
  • video/webm; codecs="vp8.0, vorbis"
  • audio/ogg; codecs="vorbis"
  • audio/mp4; codecs="mp4a.40.5"

video标签中的属性

Video标签含有src、poster、preload、autoplay、loop、controls、width、height等几个属性,以及一个内部使用的标签<source>。
1. src属性和poster属性
你能想象src属性是用来干啥的。跟<img>标签的一样,这个属性用于指定视频的地址。而poster属性用于指定一张图片,在当前视频数据无效时显示(预览图)。视频数据无效可能是视频正在加载,可能是视频地址错误等等。
``` javascript

<video width="658" height="444" src="http://www.youname.com/images/first.mp4" poster="http://www.youname.com/images/first.png" autoplay="autoplay"></video>

```
  1. preload属性

    此属性用于定义视频是否预加载。如果有这个属性有三个可选择的值:none(页面加载后不载入视频)、meta(页面加载后只载入元数据)、auto(页面加载后载入整个视频)。如果不使用此属性,默认为auto。如果<video>标签有autoplay属性的话,会忽略preload属性。

    <video width="658" height="444" src="http://www.youname.com/images/first.mp4" poster="http://www.youname.com/images/first.png" autoplay="autoplay" preload="none"></video>
  2. autoplay属性

    autoplay属性用于设置视频是否自动播放,是一个布尔属性。当出现时,表示自动播放,去掉是表示不自动播放。

    <video width="658" height="444" src="http://www.youname.com/images/first.mp4" poster="http://www.youname.com/images/first.png" autoplay="autoplay" preload="none"></video>
  3. loop属性

    指定视频是否循环播放,也是一个布尔属性

    <video width="658" height="444" src="http://www.youname.com/images/first.mp4" poster="http://www.youname.com/images/first.png" autoplay="autoplay" loop="loop"></video>
  4. controls

    布尔属性,用于向浏览器指明页面制作者没有使用脚本生成播放控制器,需要浏览器启用本身的播放控制栏。

    控制栏须包括播放暂停控制,播放进度控制,音量控制等等。

    不同浏览器显示的控制器样式不一样,而这些其实都是可以通过使用HTML5中的video API来自己设定的,比如这个[video.js自定义视频播放器][player]。
  5. width和height

    这个很清楚,不多说。
  6. <source>标签

    用于给video标签指定多个可选择的视频文件地址,标签最后会选择一个,而且要在<video>标签没有src属性时使用。

    浏览器按source标签的顺序检测指定的视频是否能播放,无法播放的原因可能是格式不支持,或者文件不存在等。如果不能播放,则尝试播放下一下。<source>标签不能单独出现,必须要放在媒体标签里面。

    - src属性 指定媒体的地址,和video标签里的一样

    - Type属性 说明src属性指定媒体的类型,帮助浏览器在获取媒体前判断是否支持此类别的媒体格式。具体的属性值,请参见[w3c的文档][w3c]。

    - Media属性 用于说明媒体在何种媒介中使用,不设置时默认值为all,表示支持所有媒介。 其实就是和<style>标签的media属性一模一样。

    注意:XHTML中属性不允许简写,比如controls必须写作<video src='src/myvideo' controls='controls'>

HTML中的媒体API

HTML5中的媒体API给我们更强大的媒体控制能力。可以在[ 轻松学会HTML5播放器开发][studyVideo]这个学习页面简单了解下媒体API中常用的几个属性和方法。
> HTMLVideoElement和HTMLAudioElement 均继承自HTMLMediaElement

关于媒体状态信息的媒体属性

只读属性

- error属性
只读。用于返回一个MediaError对象。MediaError对象的code属性包含了视频的错误状态,它是一个数字值(想想HTTP状态码),具体如下:
- 1 = MEDIA_ERR_ABORTED - 取回过程被用户中止
- 2 = MEDIA_ERR_NETWORK - 当下载时发生错误
- 3 = MEDIA_ERR_DECODE - 当解码时发生错误
- 4 = MEDIA_ERR_SRC_NOT_SUPPORTED - 不支持音频/视频
使用方法:
``` javascript
var myVid=document.getElementById("video1");
alert(myVid.error.code);
```
- currentSrc属性
只读。myVid.currentSrc会返回该媒体播放的文件的URL,和src属性不同。就算<video>标签有src属性且为相对路径,myVid.getAttribute('src')会返回src的值,而currentSrc却是会返回绝对路径。
如果未设置媒体文件,会返回空字符串。
- networkState属性
只读。myVid.networkState 属性返回媒体的当前网络状态(activity)。具体如下:
- 0 = NETWORK_EMPTY - 音频/视频尚未初始化
- 1 = NETWORK_IDLE - 音频/视频是活动的且已选取资源,但并未使用网络
- 2 = NETWORK_LOADING - 浏览器正在下载数据
- 3 = NETWORK_NO_SOURCE - 未找到音频/视频来源
- readyState属性
只读。myVid.readyState返回媒体当前播放的就绪状态。
- 0 = HAVE_NOTHING - 没有关于音频/视频是否就绪的信息,或者说当前播放位置无有效媒介资源
- 1 = HAVE_METADATA - 已经获得了音频/视频就绪的元数据,媒介资源确认存在,但当前位置没有能够加载到有效媒介数据进行播放,等待后续加载
- 2 = HAVE_CURRENT_DATA - 虽然当前播放位置的数据是可用的,但没有足够的数据来播放
- 3 = HAVE_FUTURE_DATA - 已经获得了后续播放的数据,可以进行播放,但不足以播放到最后
- 4 = HAVE_ENOUGH_DATA - 可以进行播放,且且浏览器确认媒体数据以某一种速度进行加载,可以保证有足够的后续数据进行播放,而不会使浏览器的播放进度赶上加载数据的末端
- seeking属性
只读。myVid返回一个布尔值,表明浏览器是否在媒体中寻址。true表示浏览器正在寻址,false表示浏览器已停止寻址。
寻址(Seeking)指用户在视频中跳跃到新的位置。使用如下代码:
``` javascript
//当在视频进度条点击当前播放位置的后面时,span1的位置会显示'Seeking:true',然后过一会变成'Seeking:false'
myVid=document.getElementById("video1");
function isSeeking()
{
document.getElementById("span1").innerHTML=("Seeking: " + myVid.seeking);
}
myVid.addEventListener('seeking',isSeeking;)
```
- seekable属性
只读。myDiv.seekable会返回一个TimeRanges对象,这个对象表示媒体文件中用户可寻址的范围。可寻址范围指的是用户在媒体中可寻址(移动播放位置)的时间范围。
对于非流视频,通常可以寻址到视频中的任何位置,即使其尚未完成缓冲。
TimeRanges对象([MDN][mdn]):表示音频/视频的缓冲范围。缓冲范围是指已经缓冲的音频/视频的时间范围。如果用户在音频/视频中跳跃播放,将会得到多个缓冲范围。它的属性有:
- length - 获得音频/视频中可寻址范围的数量
- start(index) - 获得可寻址范围的开始位置
- end(index) - 获得可寻址范围的结束位置
注意,第一个缓冲范围的下标index是0。
- played、paused、ended属性
均为只读。played返回一个TimeRanges对象,表明浏览器已播放的媒体的时间范围。
myVid.paused则返回一个布尔值,表明媒介是否暂停播放。因为只读,所以不能通过设置myVid.paused=false来继续播放。
myVid.ended返回一个布尔值,表明媒体是否已经结束。
- duration属性
只读。返回当前媒体文件的长度,以秒来计。
- buffered属性
只读。返回TimeRanges对象,确认浏览器已经缓存的文件。
可以看看[这个效果][tween],就是靠JS操纵这些API来实现的


可读写属性

  • defalutPlaybackRate

    设置或返回媒体的默认播放速度。

    注意:设置该属性仅会改变默认的播放速度,而不是当前的。要改变当前的播放速度,要用playbackRate属性。
  • playbackRate

    设置或返回媒体的当前播放速度。
  • currentTime属性

    可读写属性。用于设置或者读取媒体播放的当前位置(以秒计)。如果是设置该属性,则播放会跳跃到指定位置。
  • preload属性

    返回媒体标签的preload属性值,或者对其赋值。
  • autoplay属性

    可读写属性。布尔值,表示媒体是否设置了自动播放。
  • loop属性

    可读写属性。布尔值,表示媒体是否设置了循环播放。
  • controls属性

    可读写属性。布尔值,表示媒体是否使用了浏览器默认的播放控制栏。
  • src属性

    设置或返回媒体文件的当前来源。
  • volume属性

    设置或者返回当前媒体的音量值。范围为0~1,0相当于静音,1是最大音量。
  • muted属性

    布尔值。表示当前媒体是否开启了静音。

媒体API中的方法

  • play() 播放视频,并把myVid.paused强行设为false。
  • pause()暂停视频,并把myVid.paused强行设为true。
  • load() 重新载入视频,然后把myVid.playbackRate的值强行设为meVid.defaultPlaybackRate的值,且强行把media.error的值设为null。
  • canPlayType(type)

    测试浏览器是否支持特定的媒体类型。返回值有3个可能结果:空字符串(浏览器不支持此种媒体类型)、maybe(浏览器可能支持此种媒体类型)、probably(浏览器确定支持此种媒体类型)。

    可能type在前面的媒体类型一节已说明。如果是带编码译码器的,只会返回probably。

媒体API中的事件

完整的事件列表 [w3c][w3cEvent]
- loadstart事件:浏览器开始寻找指定的媒体时,即当加载过程开始时。
- durationchange事件:媒介时长(duration属性)改变。
比如:当音频/视频加载后,时长将由 "NaN" 变为音频/视频的实际时长。
- loadedmetadata事件:浏览器获取完媒介资源的时长和尺寸。
- loadeddata事件:已加载当前播放位置的媒介数据。
- progress事件:浏览器正在获取媒介。
- canplay事件:浏览器能够开始媒介播放,但估计以当前速率播放不能直接将媒介播放完(播放期间需要缓冲)。
- canplaythrough事件:浏览器估计以当前速率直接播放可以直接播放完整个媒介资源(期间不需要缓冲)。
- abort事件:浏览器在完全加载前中止获取媒介数据。这是在媒体数据终止下载时触发,而不是出错时触发。
- suspend事件:该事件在媒体数据被阻止加载时触发。 可以是完成加载后触发,或者因为被暂停的原因。
- error事件:获取媒介数据,也就是媒体加载时出错。
- emptied事件:媒介元素的网络状态突然变为未初始化。
- stalled事件:浏览器尝试获取媒体数据,但数据不可用时触发。
- play事件:即将开始播放。
- pause事件:暂停播放。
- waiting事件:在视频由于需要缓冲下一帧而停止时触发。
- playing事件:在媒体文件因为缓冲而停止或暂停之后已就绪时触发。
比如:拉动行动条时。
- seeking事件:浏览器正在请求数据(seeking属性值为true)。
- seeked事件:浏览器停止请求数据(seeking属性值为false)。
- timeupdate事件:当前播放位置(currentTime属性)改变。比如用来实现显示播放了的时间。
- ended事件:播放由于媒介结束而停止。
- ratechange事件:播放速率(playbackRate属性)改变时触发。
- volumechange事件:音量(volume属性)改变或静音(muted属性)。

事实上,当媒体加载时,会依次发下如下事件:

  • loadstart
  • durationchange
  • loadedmetadata
  • loadeddata
  • progress
  • canplay
  • canplaythrough

更完整的媒体API可以查看[video和audio参考手册][ref]

音频的相关内容

<audio>用于定义音频文件,比如音乐或者其他的音频流。
目前<audio>支持3种文件格式:MP3、Wav、Ogg。也可以在[caniuse][audio]上查看目前的支持情况。
之前说过,HTMLVideoElement和HTMLAudioElement 均继承自HTMLMediaElement,所以<audio>和<video>的API基本是通用的,而且两个标签能使用的属性也相同。

在HTML中播放音频

  • 不使用<audio>标签,使用插件:

    浏览器插件是一种扩展浏览器标准功能的小型计算机程序。

    插件可以使用 <object> 标签 或者 <embed> 标签添加在页面上.

    这些标签定义资源(通常非 HTML 资源)的容器,根据类型,它们即会由浏览器显示,也会由外部插件显示。

    使用插件的示例代码:
	<embed height="50" width="100" src="horse.mp3">
<object height="50" width="100" data="horse.mp3"></object>
`<embed> `标签定义外部(非 HTML)内容的容器。(这是一个 HTML5 标签,在 HTML4 中是非法的,但是所有浏览器中都有效)。
  • 最好的HTML5办法是使用audio标签,然后如果失败代码回退至<embed>。缺点是要把音频转换为不同的格式,且<embed>无法回退来显示错误消息。
  • 使用<a>标签。

    如果网页包含指向媒体文件的超链接,大多数浏览器会使用"辅助应用程序"来播放文件。

    以下代码片段显示指向 mp3 文件的链接。如果用户点击该链接,浏览器会启动"辅助应用程序"来播放该文件:
<a href="horse.mp3">Play the sound</a>
但是考虑到这种方式会显示成一个超链接,然后就需要对`<a>`元素进行处理了,因此不太推荐。
  • 终级方法,使用库。

    雅虎媒体播放器是一个免费的在线媒体播放器,只需要添加一行代码到页面底部就可以轻松地把HTML5页面制作成专业的播放列表:
	<a href="horse.mp3">Play Sound</a>
<script src="http://mediaplayer.yahoo.com/latest"></script>
然后只需简单地把 MP3 文件链接到您的 HTML 中,JavaScript 会自动地为每首歌创建播放按钮。雅虎媒体播放器为您的用户提供的是一个小型的播放按钮,而不是完整的播放器。不过,当您点击该按钮,会弹出完整的播放器。

关于内联声音的说明

> 当您在网页中包含声音,或者作为网页的组成部分时,它被称为内联声音。

如果您打算在 web 应用程序中使用内联声音,您需要意识到很多人都觉得内联声音令人恼火。同时请注意,用户可能已经关闭了浏览器中的内联声音选项。

我们最好的建议是只在用户希望听到内联声音的地方包含它们。一个正面的例子是,在用户需要听到录音并点击某个链接时,会打开页面然后播放录音。

具体代码

- 最少的代码
``` javascript

```
- 带有不兼容提醒的代码
``` javascript

Your browser does not support the audio tag.

```
- 能平稳退化的代码
``` javascript

Your browser does not support the audio tag.

```

track标签

`` 标签为媒体元素(比如 `` and ``)规定外部文本轨道。它也是HTML5中的新标签。
用于规定字幕文件或其他包含文本的文件,当媒体播放时,这些文件是可见的。
属性:
- default 规定该轨道是默认的。如果用户没有选择任何轨道,则使用默认轨道。
- kind规定文本轨道的文本类型。可用值:
- captions 该轨道定义将在播放器中显示的简短说明。
- chapters 该轨道定义章节,用于导航媒介资源。
- descriptions 该轨道定义描述,用于通过音频描述媒介的内容,假如内容不可播放或不可见。
- metadata 该轨道定义脚本使用的内容。
- subtitles 该轨道定义字幕,用于在视频中显示字幕。
- src 规定轨道文件的URL。
- srclang 规定轨道文本数据的语言。可用值应该是双字母的语言代码,规定轨道的语言。
- label 规定文本轨道的标题。比如,当用户选择了字幕轨道时,标题就会显示出来。


媒体API中与track有关的内容

  • addTextTrack(kind,label,language)方法

    用于创建和返回新的TextTrack对象。新的TextTrack对象会被添加到媒体元素的文本轨道列表中。
  • videoTracks属性
  • 返回VideoTrackList对象,表示视频的可用视频轨道,每个可用的视频轨道是用VideoTrack对象表示的(主流浏览器暂不支持)。
  • audioTracks属性

    返回AudioTrackList对象。表示音频/视频的可用音频轨道。每个轨道用一个AudioTrack对象表示(主流浏览器暂不支持)。
  • textTracks属性

    返回TextTrackList对象,表示媒体的可用文本轨道。每个文本轨道是用TextTrack对象表示了。这个真能用!!

    TextTrack对象

    表示一个文本轨道。可用属性有:

    kind 获得文本轨道的类型(可以是 "subtitles"、"caption"、"descriptions"、"chapters" 或者 "metadata")

    label 获得文本轨道的标签

    language 获得文本轨道的语言

    mode 获得或设置该轨道是否是活动的("disabled"|"hidden"|"showing")

    cues 获得 TextTrackCueList对象的cues列表

    activeCues 获得TextTrackCueList对象形式的当前活动文本轨道cues

    addCue(cue) 向cues列表添加一个cue

    removeCue(cue) 从cues列表删除一个cue

这一节提到的另外还有VideoTrackList对象和VideoTrack对象,略微了解一下。具体说明如下:

VideoTrackList 对象

  • videoTracks.length 获得视频中可用视频轨道的数量
  • videoTracks.getTrackById(id)通过id获得VideoTrack对象
  • videoTracks[index] 通过下标index获得VideoTrack对象
  • videoTracks.selectedIndex获得当前VideoTrack对象的下标

VideoTrack对象

表示一个视频轨道,可用属性有:

  • id 获得视频轨道的id
  • kind 获得视频轨道的类型(可以是"alternative"、"captions"、"main"、"sign"、"subtitles"、"commentary" 或 ""(空字符串))
  • label 获得视频轨道的标签
  • language 获得视频轨道的语言
  • selected 获得或设置视频轨道是否是活动的(true|false)

给HTML5媒体使用字幕

可以看看[这个链接][ie](msdn)。这甚至能做到用JS提取每一时刻的显示字幕,用的是TextTrackCue的API,前面未讲到过,也可以在这个页面上看看。
使用字幕的代码如下:
``` html

```
视频给了两字幕文件,一个是中文的,一个是英文的,默认英文字幕。
常用字幕格式为vtt模式,是以UTF-8编码的文本文件,[MIME类型约定][mime]为'text/vtt',需要在服务器端进行配置。内容格式如下:
```
WEBVTT

00:00:01.878 --> 00:00:05.334

曾经有一份真诚的爱情放在我面前,

00:00:08.608 --> 00:00:15.296

我没有珍惜,等我失去的时候我才后悔莫及,

人世间最痛苦的事莫过于此。



[mdn]:https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges
[ref]:http://www.w3cschool.cn/htmltags/ref-av-dom.html
[flash]:http://mt.sohu.com/20150822/n419491608.shtml
[audio]:http://caniuse.com/#search=audio
[video]:http://caniuse.com/#search=video
[player]:http://www.html5tricks.com/demo/video-js/demo.html
[studyVideo]:http://www.html5tricks.com/demo/html5-video-api/index.html
[w3cEvent]:https://www.w3.org/wiki/HTML/Elements/video
[w3c]:https://www.w3.org/TR/html/semantics-embedded-content.html#the-source-element
[ie]:https://msdn.microsoft.com/zh-cn/library/bg123962(v=vs.85).aspx
[mime]:http://www.cnblogs.com/benymor/p/6078820.html
[tween]:http://codepen.io/benymor/pen/ZLmqVQ

html5中的video标签和audio标签的更多相关文章

  1. 检测是否支持HTML5中的Video标签

    //检测是否支持HTML5 function checkVideo() { if (!!document.createElement('video').canPlayType) { var vidTe ...

  2. 让IE8支持html5中的video标签

    这是一篇综合几个前辈的解决方案. 使用video的时候,要遇到的问题. ①不兼容ie9及其以下版本 在<head>里添加两行, 参考张鑫旭前辈的博客,但是在ie8中薄播放. <!-- ...

  3. video标签、audio标签

    1.video标签 <video src="nans.mp4" controls="controls"  autoplay="autoplay& ...

  4. html5中新增的语义化的标签

    html5是html最新的修订版本,2014年10月由万维网联盟(W3C)完成标准制定.目标是取代1999年所制定的HTML 4.01和XHTML 1.0标准,以期能在互联网应用迅速发展的时候,使网络 ...

  5. Html5中的video元素

    最近在做门户的时候遇到要显示企业的视频介绍,需要找到一个在aspx页面播放视频的html,最后找到了是一段HTML5最新的html代码,如下: /// <summary> /// 播放视频 ...

  6. [Selenium] WebDriver 操作 HTML5 中的 video

    测试播放,停止播放 http://www.videojs.com/ 示例: package com.learningselenium.html5; import static org.junit.As ...

  7. HTML5中a标签的锚点使用

    前几天有个用户问我关于在线手册功能里的锚点问题.因为他通过代码发现,在编辑手册内容时,锚点的设置是通过id选择器来制定的,而不是带有name属性的a标签.其实这是HTML5和HTML4(XHTML)等 ...

  8. audio标签的自动播放(ios)

    0.应用场景 前端移动端开发,经常有播放音乐的需求.比如我有公司做过类似支付宝的年度账单,功能是用户在查看年度账单的过程中播放轻音乐. 1.audio标签播放mp3 (一)常用属性和API介绍 1.c ...

  9. html audio标签 语法

    html audio标签 语法 audio标签的作用是什么? 作用:<audio> 标签定义声音,比如音乐和视频或其他音频资源,使用audio标签可以不用Flash插件就可以听音乐看视频, ...

随机推荐

  1. cobbler无人值守批量安装Linux系统

    本文目录: 1.1 pxe安装系统 1.2 cobbler基本介绍 1.3 安装和配置cobbler 1.3.1 安装cobbler 1.3.2 配置dhcp和tftp 1.4 cobbler从本地光 ...

  2. angular或者js如何确定选中ul中的哪几个li

    刚来新公司接到新的需求做一个知识库页面 红色的是单选    蓝色的是多选     这些都是需要传递到后台的 开始不知道如何解决  下班后在家想到一个很巧妙的办法  不多说上代码 箭头所指就是在li里写 ...

  3. CSS3基础(2)—— 文字与字体相关样式、盒子类型、背景与边框相关样式、变形处理、动画功能

    一. CSS3 文字与字体相关样式 1. 给文字添加阴影 text-shadow: length length length ccolor; 属性适用于文本阴影,指定了水平阴影,垂直阴影,模糊的距离, ...

  4. GDB教程

    GDB是一个由GNU开源组织发布的.UNIX/LINUX操作系统下的.基于命令行的.功能强大的程序调试工具. GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调 ...

  5. Oracle dba_tablespace_usage_metrics 视图 查看表空间 说明

    一.DBA_TABLESPACE_USAGE_METRICS 视图的理论说明   群里一朋友说使用dba_tablespace_usage_metrics 视图查看表空间的结果不正确,如下:     ...

  6. Go 程序的性能优化及 pprof 的使用

    Go 程序的性能优化及 pprof 的使用 程序的性能优化无非就是对程序占用资源的优化.对于服务器而言,最重要的两项资源莫过于 CPU 和内存.性能优化,就是在对于不影响程序数据处理能力的情况下,我们 ...

  7. NSThread创建线程的三种方法

    - (IBAction)NSThreadBtnClick:(id)sender { [self threadObjectMethod]; [self threadClassMethod]; [self ...

  8. 初始MyBatis、SQL映射文件

    MyBatis入门 1.MyBatis前身是iBatis,是Apache的一个开源项目,2010年这个项目迁移到了Google Code,改名为MyBatis,2013年迁移到GitHub.是一个基于 ...

  9. nGrinder 简易使用教程

    背景 性能压测工具之前使用的是jmeter,这次说的是nGrinder,先直接搬运两者之间的比较 比较点 JMeter nGrinder 结果 实现语言 Java Java = License Apa ...

  10. postman也可以使用F12功能

    背景: 做过接口测试的话,大多数都知道或使用过postman工具,使用postman的时候,有时候希望也可以像chrome一样使用F12功能,这样方便观察一些数据,尤其是当你使用了postman的变量 ...