当前位置:  编程技术>WEB前端
本页文章导读:
    ▪《高性能网站建设指南》阅读笔记_规则5- 将样式放在顶部      首先书中提到了可视化反馈的重要性,一个很常见的例子就是进度指示器: 在我们这里,HTML页面就相当于进度指示器,当浏览器逐步的加载页面时,页头,导航栏等,所有这些为等待页面的.........
    ▪Javascript中字符串转数字      我们知道最简洁的数字转字符串方法是:var num = 123;var string = num + "";也就是在数字后面加上一个空字符。那么最简洁字符串转数字方法呢? 字符串只能进行加法(拼接)字符串进行加法(.........
    ▪js 实现 鼠标 移动 div      js:     var posX;     var posY;     fdiv = document.getElementById("divBody");     document.getElementById("divHead").onmousedown=function(e)     {     if(!e) e = windo.........

[1]《高性能网站建设指南》阅读笔记_规则5- 将样式放在顶部
    来源: 互联网  发布时间: 2013-11-06

首先书中提到了可视化反馈的重要性,一个很常见的例子就是进度指示器:

在我们这里,HTML页面就相当于进度指示器,当浏览器逐步的加载页面时,页头,导航栏等,所有这些为等待页面的用户提供视觉反馈。按照作者的意思:在IE中将样式表放在底部,可能会导致白屏或者是无样式内容的闪烁。白屏是由于浏览器要等待css下载完再显示页面的组件,所以在等待css下载的时候页面就是白屏。无样式的闪烁是由于先下载页面的组件比如文字图片,并逐步显示,等css下载完则需要应用新的css样式渲染,就产生了这种无样式的闪烁现象。

Css在底部:http://stevesouders.com/hpws/css-bottom.php

Css在顶部:http://stevesouders.com/hpws/css-top.php

用@import方式:http://stevesouders.com/hpws/css-top-import.php

无样式内容的闪烁:http://stevesouders.com/hpws/css-fouc.php

但按我的测试,虽然说白屏现象只有在ie下页面加载时偶尔才会出现,但是前两个我测试不出他说的这种情况。这条规则的说服力对我来说不是很大。后两个效果还是很明显的。

 

需要说明的一点是,不管样式放在那里并不会影响加载页面的时间,而影响的是浏览器对这些组件顺序的反应,如下图:

 

有些用户感觉缓慢的页面反而加载的更快,这就是视觉化反馈的重要性。如果真的产生了白屏,用户就会因为不知道发生了什么而离开,去投奔竞争对手。

 

还有,根据上面第三个连接,作者提出:

1. 使用@import方法必须放在<style>标签的顶部。
2. 即使@import方法放在了<head>标签中,它所指定的样式表文件却依然是最后下载的。

所以,不推荐使用@import方法加载CSS样式表,而推荐使用<link>标签将CSS样式表放在文档的<head>中。推荐使用shtml页面,这样我们在修改样式以后就不用修改页面了。

 

作者:llkaximoduo 发表于2013-1-30 11:05:48 原文链接
阅读:20 评论:0 查看评论

    
[2]Javascript中字符串转数字
    来源:    发布时间: 2013-11-06

我们知道最简洁的数字转字符串方法是:

var num = 123;
var string = num + "";

也就是在数字后面加上一个空字符。那么最简洁字符串转数字方法呢?

 

字符串只能进行加法(拼接)

字符串进行加法(拼接)是很常见的,但是字符串进行减法、乘法、除法呢?

这似乎很难定义,实际上字符串没有减法、乘法、除法操作。

但Javascript是动态语言,如果你拿两个字符串进行这三种操作的时候,他会尝试将其转成数字再进行相应的操作。例如:

alert("45" - "32"); //13
alert("5" * "6"); //30
alert("12" / "3"); //4

但这种转换操作和parseInt不太像,而和Number比较像,比如:

alert("123a" - "2bc"); //NaN
alert(parseInt("123a") - parseInt("2bc")); //121
alert(Number("123a") - Number("2bc")); //NaN

也就是说,这种转换和Number一样,会将非纯数字型字符串转成NaN,表示其是非数字。

而parseInt则会取出字符串中取出前面的能表示成数字的部分,而忽略掉后面不能表示成数字的部分。

 

最简洁的字符串转数字方法

借助字符串在进行其不能进行的运算时会先尝试转成数字这个特性。我们可以对字符串前加上正符号来将字符串转成数字。如:

var num = +"45";
alert(typeof num); //number

jQuery中有一个这个方法的应用,比如我们得到一个字符串怎么判断他是不是只有数字呢?jQuery的方法:

var string = "321"; //这个事得到的字符串,随意是什么
alert(+string + "" === string); //true表示是数字字符串,否则不是

 

进制问题 

0x开头的是16进制,所以Number和parseInt都会对16进制进行相应的转换,字符串的自动转换也是这般:

alert(parseInt("0x10")); //16
alert(Number("0x10")); //16
alert(+"0x10"); //16

但是悲剧的是0开头却非如此,我们知道0开头可以用来表示8进制,在Number和字符串自动转换中,0开头会当成十进制来获取,如:

alert(Number("010")); //10
alert(+"010"); //10

而parseInt中却很悲催,ECMAScript中并未对此进行强制规定所以出现了下面的情况:

alert(parseInt("010")); //8 in Firefox & IE
alert(parseInt("010")); //10 in Chrome

╮(╯_╰)╭ 难怪很少见到Javascript中用到8进制,如果要确保8进制只能使用parseInt的第二个参数了:

alert(parseInt("010", 8)); //8

 

 

本文链接


    
[3]js 实现 鼠标 移动 div
    来源: 互联网  发布时间: 2013-11-06

js:


    var posX;
    var posY;
    fdiv = document.getElementById("divBody");
    document.getElementById("divHead").onmousedown=function(e)
    {
    if(!e) e = window.event;  //IE
    posX = e.clientX - parseInt(fdiv.style.left);
    posY = e.clientY - parseInt(fdiv.style.top);
    document.onmousemove = mousemove;
    }
       
    document.onmouseup = function()
    {
    document.onmousemove = null;
    }
    
    
    function mousemove(ev)
    {
    if(ev==null) ev = window.event;//IE
    fdiv.style.left = (ev.clientX - posX) + "px";
    fdiv.style.top = (ev.clientY - posY) + "px";
    }

html:


<div class="divBody" id="divBody" style="left: 29px; top: 14px;">  <!--这里要加style="left: 29px; top: 14px;" 否则有问题-->
  <div class="divHead" id="divHead" style="cursor: move;">
  </div>
  <div class="content">
  </div>
  <div class="tail">
   </div>
</div>


css:

.divBody{
//margin-top:20px;
border: solid #CCC 1px;
width:500px;
height:400px;
position:relative;
z-index:0;
    margin-left:auto; 
    margin-right:auto;
}
.divHead{
width:500px;
height:50px;
background-color:#CCC;
}
.content
{
width:500px;
height:300px;
}
.tail{
background:#CCC;
height:50px;
width:500px;
display:table-cell;
vertical-align:middle;
}

作者:Test_LD 发表于2013-1-30 15:46:05 原文链接
阅读:0 评论:0 查看评论

    
最新技术文章:
▪css white-space:nowrap属性用法(可以强制文字不...
▪IE里button设置border:none属性无效解决方法
▪border:none与border:0使用区别
▪html清除浮动的6种方法示例
▪三个不常见的 HTML5 实用新特性简介
▪css代码优化的12个技巧
▪低版本IE正常运行HTML5+CSS3网站的3种解决方案
▪CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chr...
▪ie6,ie7,ie8完美支持position:fixed的终极解决方案
▪小技巧处理div内容溢出
▪html小技巧之td,div标签里内容不换行
▪纯CSS实现鼠标放上去改变文字内容
▪li中插入img图片间有空隙的解决方案
▪CSS3中Transition属性详解以及示例分享
▪父div高度不能自适应子div高度的解决方案
▪告别AJAX实现无刷新提交表单
▪从零学CSS系列之文本属性
▪HTML 标签
▪CSS3+Js实现响应式导航条
▪CSS3实例分享之多重背景的实现(Multiple background...
▪用css截取字符的几种方法详解(css排版隐藏溢...
▪页面遮罩层,并且阻止页面body滚动。bootstrap...
▪CSS可以做的几个令你叹为观止的实例分享
▪详细分析css float 属性以及position:absolute 的区...
▪IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解...
▪CSS小例子(只显示下划线的文本框,像文字一...
▪可以给img元素设置背景图
▪不通过JavaScript实现的自动滚动视差效果
▪div+CSS 兼容小摘
▪CSS的inherit与auto使用分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3