说说web 2.0生态圈的那些事

先来说一道面试题吧,“说一下,web 2.0 和web 1.0的区别?”

官方的解释是这样的:

  Web1.0 的主要特点在于用户通过浏览器获取信息,Web2.0 则更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者。web1.0与web2.0最大的不同就是在web2.0之中个人不再是互联网信息被动的接收者,而是作为一个主动者参与到了互联网的发展之中!用户不再是一个单纯的浏览者而是成为了互联网这块大网的编织者,使用者与传播者!由Web1.0单纯通过网络浏览器浏览html网页,模式向内容更丰富、联系性更强、工具性更强的Web2.0互联网模式的发展已经成为互联网新的发展趋势。

  再来引申说一下web 3.0,web 3.0之前的个体地位“唯中心论”。要么以门户为中心,要么以个人为中心。而web3.0的提法是完全的去中心,无中心概念。只有利益圈和利益链的概念,也就是只有起点或者甚至没有起点,如在那个例子里,博客大赛是一个利益链的起点,如果最终的终点回到博客大赛上,那就无所谓起点,每个参与方都可以算是一个利益的起点。你只要是参与进来,你就可以处于每个利益的节点,实现利益共享。

***************************互联网新贵  前端工程师*********************************

那么说到web 2.0, 我们来说说承载web 2.0 发展所需要的一些前端的技术:HTML4; HTML5; CSS; DOM; JQUERY; BOOTSTRAP; JAVASCRIPT; AJAX;下面我们就从技术角度对这些中的内容做一些整理和总结:

****************************************** HTML 5 start******************************************************

先来说说html5中的<video>标签,(取代了传统的通过插件播放Flash之类的方法)。<video>视频标签;<audio>音频标签;draggable="true"可拖放属性;标签<canvas>结合JavaScript来在网页上绘制图像。接下来我们分析一个雪花的案例源码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><!--meta标签提供有关页面的元信息, 放在文档头部, 处于<head>标签内部-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width,hight=device-hight,minimum-scale=1.0,maximum-scale=1.0,ser-scalable=none"/>
<title>3D雪花飘落场景动画特效</title>
<style type="text/css">
body { margin: 0; padding: 0; position: relative; background-image: url(images/xh.jpg); background-position: center; /*background-repeat: no-repeat;*/ width: 100%; height: 100%; background-size: 100% 100%; }
</style>
</head>

<!--javascript作为一种脚本语言可以放在html页面中任何位置,但是浏览器解释html时是按先后顺序的,所以前面的script就先被执行。比如进行页面显示初始化的js必须放在head里面,因为初始化都要求提前进行(如给页面body设置css等);而如果是通过事件调用执行的function那么对位置没什么要求的。因而除了部分需要在网页中输出内容、调整显示的JavaScript必须放在<head></head>之间,一般的JavaScript放在<head></head>和放在<body></body>之间从执行结果来看是没有区别的,但是有如下的经验规则:1.当JavaScript要在页面加载过程中动态建立一些Web页面的内容时,应将JavaScript放在body中。 2.定义为函数并用于页面事件的JavaScript应当放在head标记中,因为它会在body之前加载。采用这种方法,页面就不会被脚本搞得一团糟,易于阅读,在每个页面中,总可以在同一个位置找到脚本。-->
<body id="body" onLoad="init()">
<script type="text/javascript" src="js/ThreeCanvas.js"></script>
<script type="text/javascript" src="js/Snow.js"></script>
<script type="text/javascript">
    var SCREEN_WIDTH = window.innerWidth;//
    var SCREEN_HEIGHT = window.innerHeight;
    var container;
    var particle;//粒子
    var camera;
    var scene;
    var renderer;

    var starSnow = 1;

    var particles = []; 

    var particleImage = new Image();
    //THREE.ImageUtils.loadTexture( "img/ParticleSmoke.png" );
    particleImage.src = ‘images/ParticleSmoke.png‘; <!--在上面,看到这个标签<body id="body" onLoad="init()">时,会执行-->
    function init() {
        //alert("message3");

<!--document.creatElement(‘‘);的用法:创建元素‘’到当前的文档,(创建div元素到当前的文档)-->
        container = document.createElement(‘div‘);//container:画布实例;

<!--document.body.appendChild()方法,

-->
        document.body.appendChild(container);

        camera = new THREE.PerspectiveCamera( 60, SCREEN_WIDTH / SCREEN_HEIGHT, 1, 10000 );
        camera.position.z = 1000;
        //camera.position.y = 50;

        scene = new THREE.Scene();
        scene.add(camera);

        renderer = new THREE.CanvasRenderer();
        renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);
        var material = new THREE.ParticleBasicMaterial( { map: new THREE.Texture(particleImage) } );
            //alert("message2");
        for (var i = 0; i < 500; i++) {
            //alert("message");
            particle = new Particle3D( material);
            particle.position.x = Math.random() * 2000-1000;

            particle.position.z = Math.random() * 2000-1000;
            particle.position.y = Math.random() * 2000-1000;
            //particle.position.y = Math.random() * (1600-particle.position.z)-1000;
            particle.scale.x = particle.scale.y =  1;
            scene.add( particle );

            particles.push(particle);
        }

        container.appendChild( renderer.domElement );

        //document.addEventListener( ‘mousemove‘, onDocumentMouseMove, false );
        document.addEventListener( ‘touchstart‘, onDocumentTouchStart, false );
        document.addEventListener( ‘touchmove‘, onDocumentTouchMove, false );
        document.addEventListener( ‘touchend‘, onDocumentTouchEnd, false );

        setInterval( loop, 1000 / 60 );

    }

    var touchStartX;
    var touchFlag = 0;//储存当前是否滑动的状态;
    var touchSensitive = 80;//检测滑动的灵敏度;
    //var touchStartY;
    //var touchEndX;
    //var touchEndY;
    function onDocumentTouchStart( event ) {

        if ( event.touches.length == 1 ) {

            event.preventDefault();//取消默认关联动作;
            touchStartX = 0;
            touchStartX = event.touches[ 0 ].pageX ;
            //touchStartY = event.touches[ 0 ].pageY ;
        }
    }

    function onDocumentTouchMove( event ) {

        if ( event.touches.length == 1 ) {
            event.preventDefault();
            var direction = event.touches[ 0 ].pageX - touchStartX;
            if (Math.abs(direction) > touchSensitive) {
                if (direction>0) {touchFlag = 1;}
                else if (direction<0) {touchFlag = -1;};
                //changeAndBack(touchFlag);
            }
        }
    }

    function onDocumentTouchEnd (event) {
        // if ( event.touches.length == 0 ) {
        //     event.preventDefault();
        //     touchEndX = event.touches[ 0 ].pageX ;
        //     touchEndY = event.touches[ 0 ].pageY ;

        // }这里存在问题
        var direction = event.changedTouches[ 0 ].pageX - touchStartX;

        changeAndBack(touchFlag);
    }

    function changeAndBack (touchFlag) {
        var speedX = 25*touchFlag;
        touchFlag = 0;
        for (var i = 0; i < particles.length; i++) {
            particles[i].velocity=new THREE.Vector3(speedX,-10,0);
        }
        var timeOut = setTimeout(";", 800);
        clearTimeout(timeOut);

        var clearI = setInterval(function () {
            if (touchFlag) {
                clearInterval(clearI);
                return;
            };
            speedX*=0.8;

            if (Math.abs(speedX)<=1.5) {
                speedX=0;
                clearInterval(clearI);
            };

            for (var i = 0; i < particles.length; i++) {
                particles[i].velocity=new THREE.Vector3(speedX,-10,0);
            }
        },100);

    }

    function loop() {
        for(var i = 0; i<particles.length; i++){
            var particle = particles[i];
            particle.updatePhysics(); 

            with(particle.position)
            {
                if((y<-1000)&&starSnow) {y+=2000;}

                if(x>1000) x-=2000;
                else if(x<-1000) x+=2000;
                if(z>1000) z-=2000;
                else if(z<-1000) z+=2000;
            }
        }

        camera.lookAt(scene.position); 

        renderer.render( scene, camera );
    }
</script>
</body>
</html>

2010年正式推出了HTML5,跨平台完美运行,对硬件要求非常低。代替Flash的存在。html5它不是一种编程语言,而是一种超文本标记语言。

1.html5新特性:<canvas>绘制图形。<video>和<audio>标签播放视频和音频。对本地离线存储的更好支持。新的特殊内容元素(article footer header nav section)。新的表单控件(calendar date time url email search)。

2.html5开发工具:Intellij IDEA 和web storm。

3.几点学习方法:寻求问题根源;查看参考文档;参考案例;常见问题通过搜索引擎搜索。

4.html5工程师要求掌握的技能包:xhtml、css3、javascript、jquery、jquery-UI、jquery-mobile。

****************************************** HTML 5 end *******************************************************

最后推荐几个学习前端的好的网站(互联网是最好的老师)

1.极客学院(Video):http://www.jikexueyuan.com/path/html5/ (包含以HTML5为核心生态圈所有知识点)

2.W3C(文字+在线演示):http://www.w3school.com.cn/html5/ (其余知识自己在W3C school中寻找)

  

时间: 2024-10-06 11:05:16

说说web 2.0生态圈的那些事的相关文章

在你眼中 Web 3.0 是什么?(转)

web 3.0 Web 3.0一词包含多层含义,用来概括互联网发展过程中某一阶段可能出现的各种不同的方向和特征.Web 3.0 充满了争议和分歧,它到底应该什么样?具体的标志点又是什么? Web 2.0日益健全完善的今天,何时何事才是Web 3.0的标志尤未可知,也许时间才能给我们答案!但是毫无疑问的是,谁能够引领web 3.0,并且向前发展走向web 4.0的时代,谁就是网络的下一任主角! 中文名 web 3.0 概    念 概括联网发展过程中的方向和特征 首次提出者 Jeffrey Zel

web前端细解cookie那些事

web前端细解cookie那些事,在互联网时代,IT行业飞速发展,带动了web前端开发行业的兴趣.由于行业新兴起时间不久,专业人才缺乏,薪资待遇较高,已成为众多IT学子选择就业的首选,今天就为分享一些有用的干货.   1.什么是cookie cookie是浏览器缓存 缓存是什么?数据交换的缓冲区>>>>临时储存. cookie的特性, cookie生效在同一个域名下.cookie储存量有限.4~10k,不能储存50条,有过期时间. >>>>缓存 2.cook

Spark1.0.0 生态圈一览

Spark生态圈,也就是BDAS(伯克利数据分析栈),是伯克利APMLab实验室精心打造的,力图在算法(Algorithms).机器(Machines).人(People)之间通过大规模集成,来展现大数据应用的一个平台,其核心引擎就是Spark,其计算基础是弹性分布式数据集,也就是RDD. 通过Spark生态圈,AMPLab运用大数据.云计算.通信等各种资源,以及各种灵活的技术方案,对海量不透明的数据进行甄别并转化为实用的信息.以供人们更好的理解世界.Spark生态圈已经涉及到机器学习.数据挖掘

Spark1.0.0生态圈一览

Problem Description Chinachen is a football fanatic, and his favorite football club is Juventus fc. In order to buy a ticket of Juv, he finds a part-time job in Professor Qu's lab. And now, Chinachen have received an arduous task--Data Processing. Th

Web 2.0应用客户端性能问题十大根源

原文 http://www.infoq.com/cn/news/2010/08/web-performance-root/ Web 2.0应用的推广为用户带来了全新的体验,同时也让开发人员更加关注客户端性能问题.最近,资深Web性能诊断专家.知名工具dynatrace的创始人之一Andreas Grabner根据自己的工作经验,总结了Web 2.0应用客户端性能问题十大根源,InfoQ中文站将这十个问题做了概括整理,供Web开发人员借鉴和思考. 1. IE中的CSS选择器(selector)运行

基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。

基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍.最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室.

Web 1.0、2.0、3.0

web1.0:网络-人(单向信息,只读,eg个人网站,大英百科全书): web2.0:人-人(以网络为沟通渠道进行人与人沟通,eg维基.博客): web3.0:人-网络-人(人工智能.关联数据和语义网络构建,形成人和网络以及网络与人的沟通,同时在SEO支持下,提高人与人沟通的便利性): web1.0网络是信息提供者,单向性的提供和单一性理解: web2.0网络是平台,用户提供信息,通过网络,其他用户获取信息: web3.0网络成为用户需求理解者和提供者,网络对用户了如指掌,知道用户有什么.要什么

关于web.xml3.0启动报错

九月 08, 2017 10:18:19 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:war_item' did not find a matching property. 九月 08, 20

Web 2.0应用客户端性能问题十大根源《转载》

前言 Web 2.0应用的推广为用户带来了全新的体验,同时也让开发人员更加关注客户端性能问题.最近,资深Web性能诊断专家.知名工具dynatrace的创始人之一Andreas Grabner根据自己的工作经验,总结了Web 2.0应用客户端性能问题十大根源,InfoQ中文站将这十个问题做了概括整理,供Web开发人员借鉴和思考. 1. IE中的CSS选择器(selector)运行缓慢 Web开发人员通常使用JavaScript框架(如jQuery)提供的CSS选择器来实现查找功能,如var el