首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Navigator.sendBeacon实现页面埋点统计

早之前做过页面统计,用的是神策和百度统计,里面那些数据个人觉得已经很全面了,最近公司进行一些特殊埋点统计,需要在市场想要的地方一个一个加方法调接口。...如果要自己统计页面浏览时长和点击事件,就只能做一些延迟和牺牲一些准确性,反正就是页面跳转需要统计的数据会丢失一些。...早之前做过,还是看的阮一峰双循环延迟阻塞页面卸载,除了死循环延迟,还有其他旁门左道,比如ajax设置同步,然后在状态是2的时候就进行页面跳转,无所谓响应;发送图片,携带数据,浏览器对图片都会加载,这就需要服务器配合了...上面都是延迟页面卸载,牺牲体验保证准确性,另一种是把数据传递到下一个页面,然后在下一个页面调用接口统计,比如地址携带、本地存储、浏览器提供的API等都能把数据传递到下一个页面。...应该是近几年对统计的需求比重大了,浏览器已经有了草案navigator.sendBeacon(),MDN上面描述了上面方法的痛点: 这个方法主要用于满足统计和诊断代码的需要,这些代码通常尝试在卸载(unload

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Vue单页面应用

    总结如下: 单页面应用指一个系统只加载一次资源,然后下面的操作交互、数据交互是通过router、ajax来进 行,页面并没有刷新; 在vue搭建的环境里面怎么有没有公用的css和js...有公用的css和js,有两种引用的方法:(要深刻理解单页面应用程序哦,单页面就是引入后在哪里都能使用) 1.全局公共引用样式和js文件 2.组件的引入 单页面的应用优点: 1....分离前后端关注点,前端负责界面显示,后端负责数据存储和计算。...,web应用更具响应性和更令人着迷; 5.SPA和RESTful架构一起使用,后端不再负责模板渲染、输出页面工作,web前端和各种移动终端地位对等,后端API通用化; 单页面的应用缺点: 1....初次加载耗时相对增多; 2.导航不可用,如果一定要导航需要自行实现前进、后退,需要程序来实现管理; 3.使用脚本修改页面,这个脚本我们都知道,他的兼容性是个大问题; 4.

    96320

    页面日志采集(埋点)思路及其实现

    页面日志采集 页面浏览日志采集。指的是当一个页面被浏览器或者APP加载呈现时采集的日志,也是页面浏览量(Page View, PV)和访客数(Unique Visitors,UV)的统计基础。...页面交互日志采集。获取用户操作日志,通过量化获知用户的兴趣点或者体验优化点。 页面浏览日志采集流程 目前典型的网页访问过程是以客户端发送请求、服务器响应并返回所请求的内容进行的。...一般需要采集当前页面参数、浏览行为的上下文信息(如读取用户访问当前页面时的上一个页面)以及一些运行环境信息(如当前浏览器和分辨率等)。...日志采集实现思路 首先明确我们想要采集的数据-页面浏览日志和页面交互日志。正常情况下我们会在进入页面时发送日志信息,但是用户在每个页面的停留时间我们将很难统计到。...因此考虑在离开页面时发送日志信息,并且在页面跳转时将上一个页面的一些信息也一并加入日志信息中。由于在离开页面时发送日志,因此还需要考虑监控客户端的异常关闭状态。

    2.4K41

    vue单页面和多页面的区别

    定义 SPA单页面应用(SinglePage Web Application) ,指只有一个主页面的应用(一个html页面),一开始只需要加载一次js、css的相关资源。...所有内容都包含在主页面,对每一个功能模块组件化。单页应用跳转,就是切换相关组件,仅仅刷新局部资源。...MPA多页面应用(MultiPage Application) ,指有多个独立页面的应用(多个html页面),每个页面必须重复加载js、css等相关资源。多页应用跳转,需要整页资源刷新。...区别 1.刷新方式 SPA:相关组件切换,页面局部刷新或更改 MPA:整页刷新 2.路由模式 SPA:可以使用hash,也可以使用history MPA:普通链接跳转 3.用户体验 SPA:页面片段间时间的切换快...9.维护成本 SPA:相对容易 MPA:相对复杂 10.结构 SPA:一个主页面+许多模块的组件 MPA:许多完整的页面 11.资源文件 SPA:组件公用的资源只需要加载一次 MPA:每个页面都需要自己加载公用的资源

    1.6K40

    vue单页面应用的原理

    name=zs#absdklfajdf 当哈希值改变(哈希值就是:#absdklfajdf),页面不会发生跳转,单页面应用就是利用了这一点: 单页面应用因为只有一个页面,所以页面不能发生跳转,但是,我们又需要根据...url地址来展示不同的组件 这个时候,只能用哈希值来表示究竟要展示哪个组件了 单页面应用就是根据hash值来改的 给window注册onhashchange事件,当哈希值改变时通过location.hash.../node_modules/vue/dist/vue.js"> // 设计用户访问的规则 // #/login 访问登录页 要给用户展示...login组件 // #/register 访问注册页 要给用户展示register组件 // #/list 列表页 要给用户展示list组件 Vue.component...type="text">登录 ` }); const vm = new Vue

    55020

    Vue + Flask 实现单页面应用

    今天使用我们一起来尝试,使用 Vue + Flask 搭建一个简单的单页面应用。...          username: '', 48          password: '' 49        }, 50 51        // 表单验证,需要在 el-form-item 元素中增加...现在我们在浏览器中打开上面的地址,就可以得到页面如下: ?...至此,一个简单的前后端分离的单页面应用就完成了。 看完本文,你可以按着步骤自己实现下。刚接触的伙伴在看的过程中在某些地方可能有疑惑,其实我也研究了好久,也有好多存疑的地方。...不过,我还是建议不要妄求每个点都了解的特别清楚,先明白关键点,试着实现一下,回头去看相关资料的时候,也更有感触一些。

    2.2K10

    百度、Google 埋点统计(Vue篇)

    参考资料:资料 一、Vue 使用百度统计 在Vue单页面开发中接入百度统计代码时,如果直接按照官网的走会出现错误,就是_hmt找不到,这是因为在一个js文件里声明的变量在另一个js文件里是找不到的,所以需要把...易出现的错误: 1、百度统计:页面代码安装状态:代码未生效 说明:一般安装完百度统计后20分钟左右就生效了,如果时间过长说明安装有问题 页面代码安装状态:代码未生效 检查一下页面代码中是否包含以下代码...,需要去掉 //去除掉 二、Vue 使用 Google 统计 单页面应用切换时要手动发送页面统计,首先在...www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-yourID', 'auto') ga('send', 'pageview') // 是否要统计着陆页面访问...,取决于你的需求,这个不一定需要,会和`router`统计有重复 // main.js 里,如果你使用了 vue-router router.afterEach(function (to) {

    1.5K10

    在Vue中如何不影响业务代码的情况下实现页面埋点

    由于在Vue中每一次的页面跳转都会进入路由的beforeEach和afterEach钩子函数,因此我们将借助路由实现业务代码无感知的埋点功能。...,但是用户在每个页面的停留时间我们将很难统计到。...因此考虑在离开页面时发送日志信息,并且在页面跳转时将上一个页面的一些信息也一并加入日志信息中。 客户端日志发送 在Vue中我们将在router.afterEach钩子函数里做这个操作。...因为是在页面跳转之后发送请求,所以此时将end置为当前时间。在发送完日志之后进入页面,将start设置为当前时间。...此时我们可以考虑在主页面是加点击事件记录下当前页面的信息,鼠标位置等。

    1.7K31

    通过Vue自定义指令实现前端埋点

    可视化埋点是指通过可视化系统配置埋点,这种方式接触的不是很多,就不展开说了。 无痕埋点,也叫自动埋点、全埋点。即对全局所有事件和页面加载周期进行拦截埋点。 一般对哪些数据做埋点?...为了达到数据分析,便于后续的运营及产品策略调整的目的,一般需要对以下几点做埋点统计: 页面埋点:统计用户进入或者离开页面的信息,如页面浏览次数(pv)、浏览页面人数(uv)、页面停留时长、设备信息等 点击埋点...,埋点逻辑更应该是独立于业务的 尽量不对业务代码有侵入 约定规范,通过统一收口来处理埋点逻辑 由于项目是Vue开发的,所以考虑使用自定义指令的方式来完成埋点上报。...选择自定义指令的原因也是因为他能一定程度上能让业务和埋点解耦。 页面埋点在框架层面已经帮我们做掉了,这里主要关心的是点击埋点和曝光埋点。...) } } 指令封装 有了点击和曝光类,下一步就是 Vue 指令的封装了,也是之所以能实现半自动埋点的核心。

    3K30

    通过自定义 Vue 指令实现前端曝光埋点

    埋点按照获取数据的方式一般可以分为以下 3 种: 页面埋点:统计用户进入或离开页面的各种维度信息,如页面浏览次数(PV)、浏览页面人数(UV)、页面停留时间、浏览器信息等。...其中页面埋点和点击埋点是使用自动上报的方式实现,在 DOM 节点挂载特殊属性,通过埋点采集 JSSDK 监听挂载了相应属性对应的事件,在事件触发时进行埋点数据上报。...用户进入页面到离开页面相同的商品只进行一次曝光。 满足以上规定的曝光就是一次有效曝光。了解了有效曝光后,我们来看看曝光埋点实现最重要的一环,如何判断元素出现在页面的可视化区域内。...具体实现 了解了 Intersection Observer 的基本用法了以后,下面我们来实现前端的曝光埋点。因为业务是基于 Vue 实现的,所以我们通过自定义 Vue 指令实现前端的曝光埋点。...我们通过 Vue.use() 引入组件后,就可以在业务代码中直接通过指令实现曝光埋点。

    1.6K40

    通过自定义 Vue 指令实现前端曝光埋点

    埋点按照获取数据的方式一般可以分为以下 3 种: 页面埋点:统计用户进入或离开页面的各种维度信息,如页面浏览次数(PV)、浏览页面人数(UV)、页面停留时间、浏览器信息等。...其中页面埋点和点击埋点是使用自动上报的方式实现,在 DOM 节点挂载特殊属性,通过埋点采集 JSSDK 监听挂载了相应属性对应的事件,在事件触发时进行埋点数据上报。...用户进入页面到离开页面相同的商品只进行一次曝光。 满足以上规定的曝光就是一次有效曝光。了解了有效曝光后,我们来看看曝光埋点实现最重要的一环,如何判断元素出现在页面的可视化区域内。...具体实现 了解了 Intersection Observer 的基本用法了以后,下面我们来实现前端的曝光埋点。因为业务是基于 Vue 实现的,所以我们通过自定义 Vue 指令实现前端的曝光埋点。...我们通过 Vue.use() 引入组件后,就可以在业务代码中直接通过指令实现曝光埋点。

    1.6K10

    vue单页面应用首次访问速度优化

    应用背景:应用采用前后端分离开发,前端直接使用nginx部署vue打包文件提供访问需要; 问题阐述:vue大页面应用直接npm run build进行打包,前端部署后首次访问速度缓慢,基本需要40秒左右...因自己并非前端开发,只处于刚刚能应付数据展示再前台的地步,所以这个问题让我甚是苦恼; 解决方法: 0、工具使用查看各个js占用的大小 工具使用webpack.prod.conf.js 中 增加...install --save-dev compression-webpack-plugin@1.1.12 强烈推荐 compression插件使用: webpack.prod.conf.js文件下增加...}), 对js及css进行压缩处理,效果是立竿见影的,直接将250kb文件压缩到了50kb image.png 4、nginx配置修改 nginx部署必备(强烈推荐) server中增加...on; 大概可以让文件再缩小一半,通过以上优化,我的1m网速服务器基本可以做到1秒左右打开服务器(有时候取决于cdn的网速, 很关键) 总结:以上优化操作,基本可以将我最初40秒初始访问页面速度提升到

    1.4K41

    vue等单页面应用及其优缺点

    先来说说什么是单页面应用和多页面应用: 单页面应用(SPA),通俗一点说就是指只有一个主页面的应用,浏览器一开始要加载所有必须的 html, js, css。...单页面的优点和缺点: 优点: 1、用户体验好,快,内容的改变不需要重新加载整个页面,对服务器压力较小。...2、前后端分离,比如vue项目 3、完全的前端组件化,前端开发不再以页面为单位,更多地采用组件化的思想,代码结构和组织方式更加规范化,便于修改 和调整;...2、不利于 SEO优化,单页页面,数据在前端渲染,就意味着没有 SEO。 3、页面导航不可用,如果一定要导航需要自行实现前进、后退。...(由于是单页面不能用浏览器的前进后退功能,所以需要自 己建立堆栈管理) 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/149110.html

    71310

    VUE2.0 学习(一)HTML单页面使用vue技术

    修饰符 capture 修饰符 self 修饰符 passive修饰符 事件修饰符可以连写 先下载vue.js 将开发版本 和 生产版本都下载 入门全局配置 html 页面引入vue.js 之后... 以上就会关闭 官网会找到全局的配置 浏览器控制台报错 我们直接在浏览器输入IP和端口号,页面展示的是 就是当前的根文件夹,...当我们要访问html页面的时候,需要自己有一个图标 指令语法 v-bind 单向绑定 如果HTML标签属性里面的东西是动态的,那么不能使用{{ }} 了,需要用指令标签,比如链接是动态的,那么我们的写法是...阻止默认的事件: prevent修饰符 a标签 @click后面以点的形式弄出修饰符...但是这个 打印的是你点击什么打印什么 我们现在想要只有点击的东西和target一样的时候才可以触发事件,那么我们就可以 passive修饰符 也就是事件和同步的方法立即执行 首先画一个这个页面

    1.5K21
    领券