Web教程:代码实例介绍

现代互联网应用大都由运行在服务器的后端程序和运行在各种终端设备的前端程序共同构成。后端的代码、资源和数据是预先就部署或存储在后端并且运行在后端服务器上。而前端运行所需的代码、资源和数据都是来自后端的。前端从后端服务器安装或加载程序并运行在终端设备中,并且前端和后端通过网络进相互协作,最终向用户展示和实现WEB应用的全部内容和功能。

代码实例

说完了理论的东西,我们来看点常见的核心代码实现。

收集用户信息

通过浏览器内置的JavaScript对象,我们就可以收集当前用户的一些基本信息,我们将收集好的数据通过Image对象实例的src属性指向后端脚本并携带参数,就可以将我们收集的数据传给后端,之所以用Image对象而不是ajax,是为了避免跨域的问题。

  (function(){

    letparams={};

    //document

    if(document){

    params.domain=document.domain||'';//域名

    params.url=document.URL||'';//当前URL地址

    params.title=document.title||'';//当前页面标题

    params.referrer=document.referrer||'';//上一个访问页面URL地址

    }

    //window

    if(window&&window.screen){

    params.sh=window.screen.height||0;//屏幕高度

    params.sw=window.screen.width||0;//屏幕宽度

    params.cd=window.screen.colorDepth||0;//屏幕颜色深度

    }

    //navigator

    if(navigator){

    params.lang=navigator.language||'';//语言

    }

    //拼接参数

    letargs='';

    for(letiinparams){

    if(args!==''){

    args+='&';

    }

    args+=`${i}=${params[i]}`

    }

    //通过伪装成Image对象,传递给后端

    letimg=newImage(1,1);

    letsrc=`http://www.funlee.cn/api/test.jpg?args=${encodeURIComponent(args)}`;

    img.src=src;

    })()

可以根据具体的实际需求,利用JavaScript的内置API,还可以获取到更多的信息。

通过script标签引入埋点代码

<script>

    (function(){

    lethm=document.createElement("script");

    hm.type="text/javascript";

    hm.async=true;

    hm.src="http://www.funlee.cn/testAnalyze.js";

    lets=document.getElementsByTagName("script")[0];

    s.parentNode.insertBefore(hm,s);

    })();

    </script>

获取web各阶段响应时间

为了准确获取我们的web应用程序的性能特性,我们就得知道该应用程序在各个阶段的响应时间,比如:DNS解析时间、TCP建立连接时间、首页白屏时间、DOM渲染完成时间、页面load时间等。好在这些信息都可以通过Performance接口获取相关信息来计算得出。

  lettiming=performance.timing,

    start=timing.navigationStart,

    dnsTime=0,

    tcpTime=0,

    firstPaintTime=0,

    domRenderTime=0,

    loadTime=0;

    dnsTime=timing.domainLookupEnd-timing.domainLookupStart;

    tcpTime=timing.connectEnd-timing.connectStart;

    firstPaintTime=timing.responseStart-start;

    domRenderTime=timing.domContentLoadedEventEnd-start;

    loadTime=timing.loadEventEnd-start;

    console.log('DNS解析时间:',dnsTime,

    'nTCP建立时间:',tcpTime,

    'n首屏时间:',firstPaintTime,

    'ndom渲染完成时间:',domRenderTime,

    'n页面onload时间:',loadTime);

CSS埋点

没错,CSS也能做埋点,这个算是一个小技巧,当然,CSS埋点只能处理一些简单的事件埋点,收集复杂的数据还是得用JS,但CSS埋点有个优点就是,无法被禁用。

完整实例请戳:CSS埋点

核心代码如下:

<style>

    .link:active::after{

    color:red;

    content:url("http://192.168.1.110:3000/someapi?params=someInfo");

    }

    </style>

(0)

相关推荐

  • 记一次vue将列表下载为excel的兼容写法

    记一次vue将列表下载为excel的兼容写法 需求需要将后端返回的列表数据下载到本地,查询资料发现采用blob文件流下载 1.后端返回的是blob文件流,传统的模拟href点击在IE下不兼容,无法下载 ...

  • 前端开发是什么?学前端开发需要学什么语言

    前端的本质就是通过一定的程序代码来实现用户界面的ui 交互.可以认为用户在终端所看到的和所操作的都属于前端,也就是说分为渲染页面和处理用户操作两块. 前端开发是创建Web页面或app等前端界面呈现给用 ...

  • 焊接工装设计实例介绍

    焊接工装设计实例介绍

  • 实例介绍TensorFlow的输入流水线

    作者:叶   虎 编辑:赵一帆 前  言 在训练模型时,我们首先要处理的就是训练数据的加载与预处理的问题,这里称这个过程为输入流水线(input pipelines,或输入管道,[参考:https:/ ...

  • 企业百家号运营教程/数据能力介绍及操作指引!

    企业百家号运营的相关数据都在作者后台,左侧的数据模块下面包含了内容分析,粉丝分析.消息分析,好好主业分析4个子模块,接下来我们会对这些模块进行一一的介绍.内容分析里面主要包括了整体数据和单篇数据两个部 ...

  • 第一讲:小白秒变大神,PS入门到精通教程之面板介绍开讲啦

    第一讲:小白秒变大神,PS入门到精通教程之面板介绍开讲啦

  • 雷洪钧博士:动力电池智能安全保护系统的 基本原理及实例介绍

    电动汽车推广应用规模越来越大,客户要求其续航里程与燃油汽车接近,如果采用到"刀片"电池技术,在车上能装更多电池,但是汽车是运客.运货的交通车辆,自然受到其整备质量符合法规的限制,不 ...

  • 【昊宸智能冠名】雷洪钧博士专栏|氢能发动机技术知识和实例介绍

    摘要:中国氢能发动机技术进步相当快,中国发展氢能汽车步伐还会明显加快. 2019年1月21日上午,武汉汽车行业协会组织了产业链上的企业代表,参观了位于武汉市经济开发区东荆河路旁边的武汉雄韬氢雄燃料电池 ...

  • 中级Web教程:HTML5表单元素

    网络前端高薪的诱惑,学习门槛低,不管是学生党还是工作者,都渴望凭借自己的能力,空闲的时间,去学前端.也许是一种爱好,也许是一种想从事的工作.但它真的那么简单吗?现在,初级前端的工作,已接近饱和,并处于 ...

  • 中级Web教程:HTML5表单属性

    网络前端高薪的诱惑,学习门槛低,不管是学生党还是工作者,都渴望凭借自己的能力,空闲的时间,去学前端.也许是一种爱好,也许是一种想从事的工作.但它真的那么简单吗?现在,初级前端的工作,已接近饱和,并处于 ...

  • 中级Web教程:HTML5语义元素

    网络前端高薪的诱惑,学习门槛低,不管是学生党还是工作者,都渴望凭借自己的能力,空闲的时间,去学前端.也许是一种爱好,也许是一种想从事的工作.但它真的那么简单吗?现在,初级前端的工作,已接近饱和,并处于 ...