移动办公系统只要是支持HTML5的就是正统吗?

html-css018

移动办公系统只要是支持HTML5的就是正统吗?,第1张

这确实是目前国内认知方面存在的一个很大的误区,甚至有人打出“我的技术体系是HTML5”的话,觉得这样自己的产品就是正统的。比如说很多国外厂商,套个系统浏览器的壳,挂个Phonegap的库,就可以号称自己是标准,这是一个程序员1天就可以达成的,这么廉价的解决方案能是万能的吗?依托这个解决方案,就可以解决一切问题?当然也有实实在在做产品的企业,比如说烽火星空的exmobi移动应用平台产品,从来没有标榜过自己什么,甚至被人误认为“封闭”,“不标准”但是其实exmobi是支持HTML5的,但是相对其他厂商来说,烽火的产品提供了多样的选择性,在一定的场景下,它可以是打字机、图像印章,也可以是笔和纸,杀牛用牛刀,杀鸡用菜刀,有最合适的选择,简单可靠而不失灵活性。HTML5不是万能的,HTML5缺乏的现成的组件还非常有限,没有现成的录音、拍照、录像、条码、图表等太多的行业组件,也缺乏一些重要的能力,例如单页面的旋转和高级的动画,也许你可以曲线救国自己找到解决方案,但工作量可能会吓到自己。HTML5只是一种呈现引擎,只是企业移动化解决方案中的非常小的部分,绝非全部,这种技术领域的“主义”之争,缺乏建设性意义;过于宣扬,是一种缺乏自信的行为。在选择具体产品的时候,还是适合自己的才是最重要的。

pushState 是人工插入历史记录和修改地址栏,此时地址栏虽然修改,但并不触发网页跳转,换句话说就是给看的而已,第一个参数是一个对象,可以放入需要的参数,第二个理论上标题名称,但据说无效什么的,第三个就是url.这是地址栏里显示的东西.

popState 是点击浏览器的返回按钮就会触发,如果有push数据,就会在事件中获得state数据,里面就是pushState的第一个参数里的数据.

为了做微信的单页面结构,使用了这些功能,对一些需要特殊操作的链接进行接管,点击这类链接就用pushState插入历史记录,并修改地址栏,然后用ajax获取链接的内容添加到document中去,接着隐藏当前的内容块,显示新获取的内容块.

因为本身ajax获取内容并不会引起历史记录的变化,所以用户本能的点击返回按钮想回退到上一个内容页的时候,会无效,所以这里需要用pushState填入返回需要的数据,并自己在popState里处理对应的隐藏现在的内容块,显示上一个内容块的操作.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title></title>

</head>

<body>

用户:<input id="uname" type="text" /><br />

密码:<input id="pwd" type="password"  /><br>

确认密码:<input id="pwd1" type="password"  /><br>

EMAIL:<input id="email" name="email" type="email" /><br>

<input id="load" value="登陆" type="button" onclick="check()" />

<script language="javascript">

window.onload = function ()

{

document.getElementById('uname').focus()

}

function check()

{

var uname=document.getElementById("uname").value

var pwd=document.getElementById("pwd").value

var pwd1=document.getElementById("pwd1").value

var email=document.getElementById("email").value

if(uname+pwd=="")

{

 alert("用户名和密码不能为空")

}

else if(uname=="")

{

  alert("用户名不能为空")

}

else if(pwd=="")

{

  alert("密码不能为空")

}

else if(pwd1 != pwd)

{

  alert("两次密码不一样")

}

//

if(email=="")

{

    alert("电子邮件不能为空")

    return false

}

else

{

    reg=/^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/gi

    if(!reg.test(email))

    {

        alert("非法的电子邮件")

        return false

    }

}

}

</script>

</body>

</html>