浏览器

记录我在使用浏览器Performance API遇到的问题

China☆狼群 提交于 2020-01-07 05:40:25
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本文中Performance API指的是Navigation Timing API。这并不是一篇Navigation Timing API的介绍文章,而是我在使用中遇到的问题。 我在开发中遇到Navigation Timing API中的connectStart等时间节点并不是标准时间戳,而是0或者一个很小的数值,导致指标数据计算出错,尤其是IOS设备。原因如下: IOS设备通过浏览器的前进后退按钮进入的页面,Navigation Timing API数据中connectStart,responseEnd等数据可能为0或者是一个比较小的数值,并不是对应时间点的时间戳。究其原因,IOS设备通过缓存读取页面时,Navigation Timing的计算与安卓实现不一致。 如果你还想了解下Navigation Timing API,可以继续往下看 Navigation Timing API Navigation Timing API中包含全部的页面加载中关键节点的时间,例如navigationStart,connectEnd,responseEnd等时间。 具体的相关API可以去 MDN 查看, 浏览器支持程度也非常不错,移动端IOS9及以上,Android4及以上都支持,桌面端IE9也都支持。

JS获取屏幕,浏览器,网页高度宽度

可紊 提交于 2019-12-14 11:38:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWidth (包括边线的宽) 网页可见区域高:document.body.offsetHeight (包括边线的宽) 网页正文全文宽:document.body.scrollWidth 网页正文全文高:document.body.scrollHeight 网页被卷去的高:document.body.scrollTop 网页被卷去的左:document.body.scrollLeft 网页正文部分上:window.screenTop 网页正文部分左:window.screenLeft 屏幕分辨率的高:window.screen.height 屏幕分辨率的宽:window.screen.width 屏幕可用工作区高度:window.screen.availHeight 屏幕可用工作区宽度:window.screen.availWidth HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth scrollHeight: 获取对象的滚动高度。 scrollLeft

web前端开发中浏览器兼容问题(三)

独自空忆成欢 提交于 2019-12-10 09:48:10
11.li中内容超过长度后以省略号显示 此方法适用于IE与OP 浏览器 <style type="text/css"> li { width:200px; white-space:nowrap; text-overflow:ellipsis; -o-text-overflow:ellipsis; overflow: hidden; } </style> 12.为什么无法定义1px左右高度的容器 • IE6下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:overflow:hidden | zoom:0.08 | line-height:1px等。 13.怎样使一个div垂直居中于浏览器中? • 这里我们使用百分比绝对定位,与外补丁负值的方法,负值的大小为其自身宽度高度除以二 。 <style type="text/css"> div { position:absolute; top:50%; lef:50%; margin:-100px 0 0 -100px; width:200px; height:200px; border:1px solid red; } </style> 14.div居中问题 • div设置 margin-left, margin-right 为 auto 时已经居中,IE 不行,IE需要设定body居中,首先在父级元素定义text-algin:

你所不知道的html5与html中的那些事(四)——文本标签

寵の児 提交于 2019-12-10 06:15:39
文章简介: 关于html5相信大家早已经耳熟能详,但是他真正的意义在具体的开发中会有什么作用呢?相对于html,他又有怎样的新的定义与新理念在里面呢?为什么一些专家认为html5完全完成后,所有的工作都可以达到真正的云方式呢?这一系列的问题你是否已经想明白了呢? 本系列文章将为您一一解答你所不知道的关于html5与html中的那些事;具体会包括如:html5新的理念与想法,html5的新标签的用意与具体开发中场景应用,html5与css3的感情经历(用法搭配),包括html5的父亲html的一些小隐私(您在开发中可能不知道的事); 大家好,又与大家见面了, 今天我会为大家讲到的您可能不知道的事有什么呢?下面我们就来看看 1)元素title属性对语意的重要性是什么? 2)html5中的新标签对于写文本启到一些重要影响的标签有哪些? 3)html5中<address>、<figure>、<time>标签的正确用法与注意事项有哪些是你不知道的? 4)关于<em><strong>与<b><i> 的前世今生? 第一个问题 元素title属性对语意的重要性是什么? title属性这个刚一看会不会想到title标签?但是不要弄到一起算呀,他们是完全不同的东西;感觉平时在我们开发的时候很少会用到这个属性,首先说一下它是干什么的吧,其实他就是一个具有提示作用的属性

11个显著提升 ASP.NET 应用程序性能的技巧——第1部分

自闭症网瘾萝莉.ら 提交于 2019-12-10 05:29:53
【编者按】本文出自站外作者 Brij Bhushan Mishra ,Brij 是微软 MVP-ASP.NET/IIS、C# Corner MVP、CodeProject Insider,前 CodeProject MVP,CodeProject Mentor 以及 CodeProject Platinum Member,拥有6年左右的高级开发工程师/架构师经验,自幼酷爱计算机。 采用 ASP.NET 和 IIS 构建 Web 应用程序并将其托管到 Web 服务器上极其简单,但是许多可提升 Web 应用程序性能的机会或隐藏配置同样不能忽视。本系列博文将介绍一些简单但却可以应用于任何 Web 应用程序的技巧,而它们却是经常被忽略或遗忘的。 1- 内核模式缓存——这是广泛用于程序编写的主要工具之一,可加速 Web 应用程序。但是大多数时候,很少开发者以最佳方式应用内核模式缓存,仅仅发挥其部分主要优势。由于所有 ASP.NET 请求均会经历不同阶段,因此可在不同级别使用缓存,具体如下所示。 由上图可见,http.sys 首先接收请求。由于 http.sys 是位于 OS 内核内且直接接收 TCP 层请求的http listener,因此如果使用内核级缓存可节省大多用于服务器的时间,同时可省去用于 IIS/ASP.NET Pipeline、页面生命周期、自定义代码、数据库等的所有时间

Ubuntu14.04 成功编译chromium

可紊 提交于 2019-12-10 01:49:43
1、下载depot_tools: 首先安装 git-core: sudo apt-get install git-core 执行命令: git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 2、更新depot_tools: 直接在当前shell环境输入: export PATH="$PATH:depot_tools_dir/depot_tools"; 或加如系统环境变量: vim ~/.bashrc 文件,在最后加入 export PATH="$PATH:depot_tools_dir/depot_tools",  保存执行source ~/.bashrc 3、配置代码分支  进入自己本地要保存源码的目录,执行 gclient config http://src.chromium.org/svn/releases/36.0.1985.135 可根据自己需要下载相应版本。如果不需要下载一些文件如LayoutTest修改目录下的.gclient : 1 solutions = [ 2 { "name" : "36.0.1985.135", 3 "url" : "http://src.chromium.org/svn/releases/36.0.1985.135", 4 "deps_file"

利用referer防止盗链下载

老子叫甜甜 提交于 2019-12-09 19:30:19
一、首先了解下 referer 的原理 request.getHeader("referer") 在开发web程序的时候,有时我们需要 得到用户是从什么页面连过来的 ,这就用到了referer。 它是http协议,所以任何能开发web程序的语言都可以实现,比如jsp中是: request.getHeader("referer"); php是$_SERVER['HTTP_REFERER']。其他的我就不举例了(其实是不会其他的语言)。 那它能干什么用呢?我举两个例子: 1,防止盗连,比如我是个下载软件的网站,在下载页面我先用referer来判断上一页面是不是自己网站,如果不是,说明有人盗连了你的下载地址。 2,电子商务网站的安全,我在提交信用卡等重要信息的页面用referer来判断上一页是不是自己的网站,如果不是,可能是黑客用自己写的一个表单,来提交,为了能跳过你上一页里的javascript的验证等目的。 使用referer的注意事项: 如果我是直接在浏览器里输入有referer的页面,返回是null(jsp),也就是说referer只有从别的页面点击连接来到这页的才会有内容 。 我做了个实验,比如我的referer代码在a.jsp中,它的上一页面是b.htm,c.htm是一个带有iframe的页面,它把a.jsp嵌在iframe里了。我在浏览器里输入b.htm的地址

Chrome浏览器插件开发心得

六月ゝ 毕业季﹏ 提交于 2019-12-06 23:20:34
一、学习基础知识 从现在的经验来看,基本只需要看一下,360翻译的开发文档即可,开发出一个适合大部分人要求的插件了。 文档: http://open.chrome.360.cn/extension_dev/overview.html 二、实战经验 先给出我开发的 XPlayer 的配置,下面的经验可参考。 { “name”: “XPlayer “, “version”: “0.2″, “description”: “XP(XPlayer),豆瓣音乐播放器”, “manifest_version”: 2, “homepage_url”: “http://www.xiongchuan.org/xplayer”, “icons”:{ “16″ : “icon_16.png”, “48″ : “icon_48.png”, “128″ : “icon_128.png” }, “browser_action”: { “default_icon” : “icon_128.png”, “default_title” : “XPlayer”, “default_popup” : “popup.htm” }, “background”:{ “page”:”background.htm” }, “permissions”: ["tabs"], “content_scripts”:[ { "matches

浏览器开发系列第二篇:如何编译最新chromium源码

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-06 12:41:56
说一下为什么这么晚才发第二篇,上周和这周 department 的工作太多了,晚上都是十点半从公司出发,回家以后实在没有多余的精力去摸键盘了。所以请大家包涵! 上期回顾: chromium 源码下载: 找个靠谱的 vpn (我试过了,网上说的不用 vpn 拿代码的都不靠谱); 获取 depot_tools ,解压,设置环境变量 ; gclient 获取 python 和 git , svn ,设置环境变量; fetch–nohooks chromium –nosvn=true 获取源码; gclientsync --force –nohooks 同步到最新 上边的 python 和 git ,也可以通过手动安装,只要环境变量设置好了就可以。 环境配置: 获取代码的最后一步是获取编译环境也就是 Visual Studio 2013 ,上面所有的都成功以后,运行 gclient runhooks 就会把编译需要的 vs2013 的文件下载到本地,存储在 depot_tools\win_toolchain\vs2013_files 路径下,主要文件是编译需要的库文件。 在 windows 上编译 chromium 的官网几个说明: 1.你必须把你的windows系统区域设置为英文,否则编译时会发生错误:"The file contains a character that cannot

webqq更新——采用反向AJAX实现在线人员上下线模拟

偶尔善良 提交于 2019-12-05 19:21:04
原文: http://www.abigdreamer.com/mywork/webqq-update-online-reverse-ajax-implementation-off-the-assembly-line-simulation.html 本blog已转移到 造梦师 http://www.abigdreamer.com ,欢迎大家常去我的blog看看! 说明:本次更新只是模拟了一下人员的上下线,并没有采用真是的数据(我一台电脑开那么多浏览器测试的话有点受不了,谁叫电脑烂呢,呵呵) 。另外需要注意的就是,需要用这个新的dwr.jar覆盖掉原来的那个dwr.jar,要不会出问题的! 有朋友问我怎样用反向AJAX来实现在线人员列表的更新,提到DWR允许javascript访问服务器端的Java方法,这使得AJAX使用起来会比较容易,而在DWR2.0里面添加了一个非常强大的功能——反向AJAX,也就是说,服务器端的Java方法可以取得浏览器端的Web上下文,并可以调用javascript的方法,将服务器端的数据异步地传输给浏览器。本文将通过一个demo展示这种特性。这个demo实现了类似股票交易系统中实时更新数据的功能,事实上是通过发布-订阅模式去实现的。也就是说,客户端订阅一个主题,服务器端通过一个线程向订阅这个主题的浏览器定时、异步地发送数据,从而实现了这种实时更新的功能。