关于firefox:Firefox-手动安装-uBlock

step 1先确保Firefox开启了自定义装置扩大程序的性能:在地址栏输出about:config而后回车,进入到高级首选项界面。 接着在其中的搜寻栏查找xpinstall.signatures.required设置项,确保其设置为true状态。 step 2返回ublock的官网仓库的发行页: https://github.com/gorhill/uBlock/releases ,间接点击: uBlock0_版本号.firefox.signed.xpi ,firefox 便会主动装置它。

June 25, 2023 · 1 min · jiezi

关于firefox:麒麟操作系统-kylinos-从入门到精通-办公环境-第二十五篇-安装最新版本的firefox和chromium

0.根底环境类别:笔记本型号:中国长城 NF14C硬件平台:飞腾处理器(ArmV8 指令集)零碎:河汉麒麟操作系统 V10 SP1(2203) 关键词:信创,麒麟零碎,linux,PKS,河汉麒麟,飞腾,arm,firefox,chrome,chromium,浏览器 1. 需要背景河汉麒麟零碎中自带了许多浏览器,我集体还是喜爱firefox,chrome,但零碎仓库中自带的版本与最新的版本相差太远,明天咱们尝试装置最新版本。 2.firefox装置https://cn.bing.com/search?q=...https://packages.debian.org/s...依据提醒,提醒的依赖包也是没有的 sudo apt-get install libc6 libffi8 libgdk-pixbuf-2.0-0 libnspr4 libnss3 libstdc++6 libvpx7 libx11-xcb1显示很多包都装不了,如libvpx7,仓库中是libvpx6零碎自带的是firefox 78 (截至发稿时,firefox最新版本是102) 3.chromium装置执行命令行 sudo apt-get install chromium-browser -y但截至发稿时,chromium的最新版本是103.网上信息显示,chromium的最新发行渠道是snap,而firefox102在snap上也有arm64版本,咱们接下来将通过snap装置最新的firefox,chromium 4.snap装置sudo apt-get install snapd #装置命令sudo systemctl enable snapd #开机自启动sudo systemctl status snapd #查问服务状态sudo systemctl start snapd #立刻启动4.1 firefoxfirefox放第一,因为他所有平台都能够同步,chromium当初曾经不能用google账号了。 sudo snap install firefox确保新版本能够启动后,右击菜单中的老版本,即可卸载掉。 装置胜利 4.2 chromiumsudo snap install chromium装置胜利,右击菜单中的老版本进行卸载 5.snap 利用商店装置 sudo snap install snap-store启动商店后,能够在外面找找,是否有咱们须要的,而后能够间接装置。有点慢,不再深刻。也能够间接通过snap的网站查找 ,再通过提醒的命令行装置可能更不便。https://snapcraft.io/store麒麟零碎专栏:https://segmentfault.com/blog...文章发表在SegmentFault分割邮箱:1179611323@qq.com群:662512340发行日志:20220714 首发

July 14, 2022 · 1 min · jiezi

关于firefox:曝-iPhone-14-没有-mini-版本百度员工跳槽字节被判赔-107-万元Firefox-100-发布-思否周刊

40s 新闻速递A15/M1 处理器海量机密文件外泄 可被逆向工程Edge 超过 Safari 成为第二风行的桌面浏览器iPhone 14 参数曝光 mini 版本被砍掉苹果、谷歌、微软将联结推广无明码登录技术盖茨称马斯克或让推特变糟,但永远别低估他显示 IP 属地后 IP 代理产业爆火,最低 6 元可更改GitHub 要求所有账户开启双因素身份验证百度员工跳槽字节跳动一审被判赔 107 万元Firefox 浏览器 100 公布微软开始筹备 23H2:不稳固的 Win11 预览版行将到来AlmaLinux 8.6 Beta 公布SQLite 3.38.4 公布Unity 7.6 Beta 公布行业资讯A15/M1 处理器海量机密文件外泄 可被逆向工程日前,苹果公司起诉守业公司 Rivos,指摘后者窃取了与其最新 A15、M1 处理器芯片无关的秘密材料。据理解,Rivos 是一家 2021 年 6 月才成立的企业,经营内容是研制零碎级芯片(SoC)。不过,该公司十分神秘,有财经媒体理解到,该公司对苹果研发员工的挖角准则是“应招尽招”,目前曾经至多撬走 40 多人,且还要求他们从苹果拷贝带走数 GB 的机密文件“纳投名状”。依照苹果的指控,至多两名前员工盗取了数千份 A15、M1 相干设计和交易秘密文档。这些文件、信息材料等能够放慢 Rivos 自家芯片的开发进度,使苹果在市场上处于不利竞争位置。 Edge 超过 Safari 成为第二风行的桌面浏览器依据 StatCounter 的数据,Microsoft Edge 超过苹果的 Safari 成为第二风行的桌面浏览器。在桌面浏览器市场,Microsoft Edge 的使用率为 10.07%,高于 Safari 的 9.61%,Google Chrome 第一占 66.64%,Mozilla Firefox 第四占 7.86%。Microsoft Edge 是 Windows 11 默认应用的浏览器。挪动浏览器市场则是另一种状况,Edge 未进入前六,Chrome 和 Safari 牢牢占据了前两位,相比其它竞争对手当先劣势微小:Chrome 占 62.87%,Safari 占 25.35%,第三位 Samsung Internet 只有 4.9%。 ...

May 8, 2022 · 2 min · jiezi

关于firefox:Firefox-99-正式发布最后的两位数版本

4月 5 日,Mozilla 正式公布了 Windows、Mac 和 Linux 的Firefox 99.0,此次更新幅度较小。 次要更新内容新性能容许用户应用键盘快捷键“n”在浏览模式中切换叙述在 PDF 浏览器中减少了对搜寻的反对(无论是否有变音符)加强 Linux 沙箱:裸露在 Web 内容中的过程不再能拜访 X Window 零碎 (X11)当初在德国和法国反对信用卡主动填写反对 Windows、macOS 和 Linux 上的 Web MIDI API。目前的实现有一些局限性,如不足热插拔检测,但应该能够与大多数现有的网站一起应用。若要在网站上启用该 API,须要一个额定的附加组件。高危 Bug 修复CVE-2022-28289:修复了 Firefox 99 和 Firefox ESR 91.8 中的内存平安谬误CVE-2022-1097:在 NSSToken 对象中的开释后应用CVE-2022-28281:因为意外的 WebAuthN 扩大,导致写入超出范围已解决的问题Zoom Web 客户端中的画廊模式当初可在 Firefox 99 中拜访。 视频显示并不总是实用于画廊模式下的分组讨论室。 在旧版本中,当 Zoom 网络客户端的用户进入分组会议室时,可能不会呈现本人的视图和其余参与者的视图。 当初用户在降级浏览器后,来到分组讨论室并从新进入即可解决问题。 此外,Mozilla 预计将于 5 月 3 日公布 Firefox 100 版本。 博客原文: https://www.mozilla.org/en-US...

April 6, 2022 · 1 min · jiezi

关于firefox:Firefox-屏蔽中国大陆用户安装-uBlock-Origin-等其他广告屏蔽插件

近日,一些用户发帖称 “中国用户无奈应用广告拦挡插件” —— 他们发现“当应用中国大陆 IP 拜访 Firefox 扩大商店中的广告拦挡插件页面时(如 uBlock Origin、AdGuard AdBlocker、AdBlock For Firefox 以及 AdNauseam )会显示 ‘此页面在您的地区不可用’ 的提示信息”。 家喻户晓,在这个网络信息“爆炸”的时代,咱们普通人均匀每天简直要看到几千条广告,让人不胜腻烦,所以这个时候“广告拦挡”扩大工具就成了大家的抉择。 一般而言,广告拦挡插件作为用来阻止广告的软件,它们有两种工作形式: 1)当广告拦挡插件阻止来自广告商服务器的信号时,广告永远不会呈现在你的页面上。2)广告拦挡插件能够屏蔽网站上可能是广告的局部。 不管这些广告是视频广告、网页广告、弹窗广告、还是第三方 cookie ,只有应用了广告拦挡插件,你就能够搜寻浏览器中可用的广告拦截器附加组件。 所以这里,就不得不提 Firefox 已批准的广告屏蔽插件列表,如 uBlock Origin、AdGuard AdBlocker、AdBlock For Firefox 和 AdNauseam。 正如开篇用户发现的那样,通过测试和验证,当初拜访 Firefox 的 4 款广告拦挡插件页面时,addons.mozilla.org 的确会返回至 451 (因法律起因而不可用)的错误代码页,且页面注释申明“此页面在您所在地区不可用”。当然,除了以上 4 种广告拦挡插件之外,Adblock Plus 和 Ghostery 等其余这样的广告拦挡插件临时未受到影响,可失常拜访和下载安装。 该“屏蔽”事件的测试起源和证据:[1] 依据 Blocky 的测试日志,受限拜访最后不早于 2022 年 3 月 8 日,也不迟于 2022 年 3 月 19 日开始。用户报告链接:https://bgme.me/@bgme/1079867...测试后果(blocky.greatfire.org)之前:https://blocky.greatfire.org/...之后:https://blocky.greatfire.org/...通过从中国大陆 IP 地址或 blocky 测试以下 URL,能够复制雷同的测试后果。受影响的附加组件:[2] https://addons.mozilla.org/zh...[3] https://addons.mozilla.org/zh...[4] https://addons.mozilla.org/zh...[5] https://addons.mozilla.org/zh... ...

March 22, 2022 · 1 min · jiezi

关于firefox:Firefox-登录后无法同步书签

Firefox 登录后,发现无奈同步书签。 请按如下步骤操作。 1.在地址栏输出 about:config 点击下方接管危险并持续。2.搜寻:identity.fxaccounts.autoconfig.uri键值填写:https://accounts.firefox.com.cn 批改实现后,点击同步,即可同步到书签。 留神:须要先实现登录后再增加上述配置。如果增加配置后发现点击登录按钮没任何反馈,请删除上述配置登录后从新增加。

February 3, 2022 · 1 min · jiezi

关于firefox:Firefox-Relay-被加入-GitHub临时邮箱项目引发大量用户不满

2021 年 11 月,Mozilla 推出了名为“Firefox Relay”的邮件隐衷中继服务,旨在帮忙用户爱护他们的隐衷,并限度针有针对性的垃圾邮件数量。 传统的「长期邮箱」服务会向用户提供一个邮箱名称随机生成,有效期 10 分钟的长期邮箱,在此期间用户能够应用这个邮箱来注册一些互联网账号并接管验证码。它的益处除了爱护隐衷以外,还能爱护用户免受营销广告之扰。 在给用户带来便当的同时,「长期邮箱」也给服务供应商带来了“麻烦”,它会在营销邮件的成果上大打折扣,也会让不法分子滥用网站的相干服务。 所以很多服务提供商会在用户注册时验证用户的邮箱是否为「长期邮箱」,如果是的话将间接回绝用户注册。 GitHub 上一个名为「disposable-email-domains」的我的项目就是一个由社区独特保护的长期邮箱列表,当中会列出各种长期邮箱服务所应用的邮箱格局。互联网服务提供商能够应用或参考此我的项目,从而强制用户应用实在邮箱注册账号。 Firefox Relay 相似于传统的「长期邮箱」,但却有实质上的不同——它是一个用于「中继」的电子邮件地址,该长期邮箱会与用户的实在邮箱关联,并将收到的邮件 "转发" 到用户的实在收件箱。因而互联网服务提供商只会晓得这个随机生成的邮箱地址,而无奈得悉实在地址。 Firefox Relay 并不是随用随抛的「长期邮箱」,也不会每次都生成一个新的邮箱地址,它与实在邮箱相关联,用户能够把 Firefox Relay 当作主邮箱应用。 但近日,「disposable-email-domains」这个 GitHub 仓库打算将 relay.firefox.com 也退出这个名单并已提交相应的 PR,此举引发了宽广用户的强烈不满。此外,10minutemail、GuerrillaMail 和 Mailinator 等服务提供商也都被退出了域名黑名单。 GitHub 我的项目地址: https://github.com/disposable...

January 20, 2022 · 1 min · jiezi

关于firefox:js滑动提示效果代码分享

本文实例为大家分享了js滑动提醒成果,供大家参考,具体内容如下 js代码丑陋的动画成果;在靠右上角:背景色彩为红,字体色彩为红色 滑动 变大 上移 迟缓突变隐没 前台代码,写在body里:心愿本文所述对大家学习javascript程序设计有所帮忙

August 30, 2021 · 1 min · jiezi

关于firefox:installing-microsoft-edge-browser

installing microsoft edge browser on linux used by command line method Setupcurl https://packages.microsoft.co... | gpg --dearmor > microsoft.gpgsudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.co... stable main" > /etc/apt/sources.list.d/microsoft-edge-dev.list'Installsudo apt updatesudo apt install microsoft-edge-dev

August 8, 2021 · 1 min · jiezi

关于firefox:bzz矿机公司-bzz配置要求

Swarm的挖矿常见问题 Q1: Swarm是什么? Swarm和IPFS/Filecoin相似,也是一种分布式数据存储系统,他要构建的是一个不停机、零故障和防审查的点对点存储和服务解决方案。同时,Swarm 也能够说是以太坊我的项目官网的一部分。 艰深来讲,Swarm分布式存储是为了给以太坊的利用提供数据存储、带宽等资源反对。 Q2: Swarm以后处于什么阶段? 以后处于空投测试阶段,2021年2月15日,Swarm 发表将对已在测试网上运行 Bee 节点的地址空投 100 万枚 BZZ 代币,旨在处分晚期使用者和对网络进行压力测试。然而始终到最近Swarm挖矿才爆火起来,大略是因为马上就要到打算所说的“上半年”主网上线的工夫了。官网将这次空投称为“蜂王崛起”。 Q3: Swarm以后是如何挖矿? 在空投测试阶段,网络中会随机确定刚好35个 "蜂后节点"(qBZZ节点),与这35个qBZZ节点交互取得的支票(即qBZZ支票)才是有价值的,在测试完结前没有人(甚至团队成员)会晓得这些蜂后节点是哪些。在空投完结后,支票能够通过肯定比例兑换BZZ币。 Q4:咱们的矿机是什么? 咱们目前采纳的是云矿机计划,以后还没有官网确认的物理机配置,所以最稳当的形式就是,先上云服务,跑完之后等官网配置进去后,咱们才上物理机,这是最稳当的方法。不然就像18年的FIL,过后所有的物理机都不能用,出不了币。等官网发表了配置后,咱们会选用最优的计划进行配比物理机,到时依据价格补差价。 矿机对接aacd314 Q5:“云节点”与“物理节点”有什么区别 云节点:在云端租用的云服务器搭建配置的Swarm,如阿里云、腾讯云等的服务器间接去租用部署Swarm云节点进行测试网的挖矿。应用云节点的益处是比拟不便、随时能够扩容,免去了物理节点从定购服务器硬件,从供给到组装、上架部署等一些列的工夫周期就得上半个月等问题。毛病就是没有物权、只有租用期间的使用权,到期完结。 物理节点:指的是买了“整机服务器”搭建的Swarm矿机,这个是包含了CPU、内存、硬盘等一系列整机相干的配件组成的服务器及相应的上架、部署及运维服务搭建的Swarm节点。然而以后还没有官网确认的物理机配置,现阶段的物理机存在主网上线后无奈持续产币的危险。 Q6:什么时候挖支票?怎么调配? 以后处于预挖矿阶段,官网总共空投100万的BZZ进行测试。然而在空投阶段,挖的并不是BZZ币,而是qBZZ支票,在空投完结后,官网会查看全网有有多少qBZZ支票,并确定有多少节点有权取得BZZ,以及qBZZ/BZZ比率,来兑换空投的100万枚BZZ币。 以后挖的支票依据合同签订工夫来定交付期,因为各节点的收益不一样,依据理论出票状况来进行调配。 Q7:什么时候开始挖币?怎么调配? 在主网上线后正式开挖,具体规定在主网上线后期待官网公布,每台矿机的收益都将是链上的数据,公开通明。 Q8:其余公司为什么曾经有APP和后盾了? 目前市面上APP全副是由公司自行开发的,外面的数据只是一个展现,数据齐全是由公司进行把控;这些后盾并不是官网的数据,因为官网还未公开数据,尚处于测试阶段。 Q9:主网上线挖矿时,须要质押币吗? 最终以官方消息为准。目前依据咱们把握的信息和资讯来看,在主网上线后,和Filecoin挖矿相似,须要质押BZZ币能力进行挖矿。 矿机对接aacd314 Q10:以后的挖矿阶段是头矿阶段吗? 目前就是Swarm头矿阶段,并且,依据以后把握的信息,Swarm主网上线后,挖矿须要质押BZZ币,并且第一工夫的BZZ币起源只能是空投阶段的1百万枚BZZ币,也就是说主网上线的时候,全网BZZ币数量极少且无限,因而,头矿的意义也就不言而喻了。 Q11:咱们如何查看产票状况? 链上数据是公开通明的,能够在区块链浏览器上查看每天产票数据,购买矿机和节点的敌人,咱们会将钱包地址或者合约地址给到大家,大家能够在浏览器上查看每天产票状况。 往年的矿圈异样冷落,很多人大腿都拍肿了,错过了FIL头矿,又错过了CHIA头矿,你还要错过Bzz? 为什么要布局头矿?因为头矿回本周期都是按小时来计算的!如: 1: IPFS头矿单P 300个FIL/天 2: CHIA头矿单P 65个XCH/天,12小时回本。 3: 比特币头矿单台 357个BTC/天,一天7000万元。 4:Bzz头矿一天多少个Bzz?多少个小时回本? 所以头矿的第1个月比前面半年的产量都要高出很多!这就是为什么要提前购买Bzz矿机抢占矿头的起因!Bzz是业余赛道,技术服务很要害 !咖 aacd314 理解详情

June 16, 2021 · 1 min · jiezi

关于firefox:XML可扩展标记语言

XML 指可扩大标记语言(eXtensible Markup Language)。 XML 被设计用来传输和存储数据。 XML 很重要,也很容易学习。 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: XML 简介 XML 被设计用来传输和存储数据。 HTML 被设计用来显示数据。 。。。。。。。。。。。。。 什么是 XML? XML 指可扩大标记语言(EXtensible Markup Language)。 XML 是一种很像HTML的标记语言。 XML 的设计主旨是传输数据,而不是显示数据。 XML 标签没有被预约义。您须要自行定义标签。 XML 被设计为具备自我描述性。 XML 是 W3C 的举荐规范。 。。。。。。。。。。。。。 XML 和 HTML 之间的差别 XML 不是 HTML 的代替。 XML 和 HTML 为不同的目标而设计: XML 被设计用来传输和存储数据,其焦点是数据的内容。 http:/ / HTML 被设计用来显示数据,其焦点是数据的外观。 HTML 旨在显示信息,而 XML 旨在传输信息。 。。。。。。。。。。。。 XML 不会做任何事件 兴许这有点难以了解,然而 XML 不会做任何事件。XML 被设计用来结构化、存储以及传输信息。 XML 不会做任何事件。它仅仅是包装在 XML 标签中的纯正的信息。咱们须要编写软件或者程序,能力传送、接管和显示出这个文档。 。。。。。。。。。。。。 通过 XML 您能够创造本人的标签 ...

May 26, 2021 · 4 min · jiezi

关于firefox:什么是物联网常见IoT-物联网协议最全讲解

举荐语:这是一本从技术原理、工程实际、设计模式和最佳实际4个维度解说物联网零碎开发的著述,是作者10余年实践经验的总结。 付强,某智慧社区企业的联结创始人兼CTO,资深IoT技术专家,有10余年从业教训,专一于物联网平台和产品的设计与开发,十分相熟各种物联网协定和物联网零碎的架构与开发。一、什么是物联网?物联网(Internet of Things)这个概念读者应该不会生疏。物联网的概念最早于1999年被提出来,曾被称为继计算机、互联网之后,世界信息产业倒退的第三次浪潮,到当初曾经倒退了20余年。现在,在日常生活中,咱们曾经能够接触到十分多的物联网产品,例如各种智能家电、智能门锁等,这些都是物联网技术比拟成熟的利用。物联网最早的定义是:把所有物品通过射频辨认等信息传感设施与互联网连接起来,实现智能化辨认和治理。当然,物联网倒退到明天,它的定义和范畴曾经有了扩大与变动,上面是古代物联网具备的特点。 1.1 物联网也是互联网物联网,即物的互联网,属于互联网的一部分。物联网将互联网的基础设施作为信息传递的载体,即古代的物联网产品肯定是“物”通过某种形式接入了互联网,而“物”通过互联网上传/下载数据,以及与人进行交互。 举个通过手机App近程启动汽车的例子,当用户通过App实现启动操作时,指令从已接入互联网的手机发送到云端平台,云端平台找到已接入互联网的车端电脑,而后下发指令,车端电脑执行启动命令,并将执行的后果反馈到云端平台;同时,用户的这次操作被记录在云端,用户能够随时从App上查问近程开锁记录历史。**这就是一个典型的物联网场景,它是属于互联网利用的一种。“物”接入互联网,数据和信息通过互联网交互,同时数据和其余互联网利用一样汇聚到了云端。 1.2 物联网的主体是“物” 后面说古代物联网利用是一种互联网利用,然而物联网利用和传统互联网利用又有一个很大的不同,那就是传统互联网生产和生产数据的主体是人,而古代物联网生产和生产数据的主体是物。 在古代物联网的利用场景下,数据的生产方是“物”,比方智能设施或者传感器,数据的消费者往往也是“物”。 在智慧农业的利用中,孵化室中的温度传感器将孵化室中的温度周期性地上传到控制中心。当温度低于肯定阈值时,核心依照预设的规定近程关上加温设施。在这一场景中,数据的生产者是温度传感器,数据的消费者是加温设施,二者都是“物”,人并没有直接参与其中。 物联网和传统互联网最大的不同:数据的生产者和消费者次要是物,数据内容也是和“物”非亲非故的。 1.3 物联网和人工智能人工智能堪称近年来IT畛域最火的词语之一。纵观人工智能的倒退路线,咱们能够看到,人工智能的倒退之所以可能突飞猛进,次要有以下两个起因。 硬件的倒退使得深度学习神经网络的学习工夫迅速缩短。在大数据的时代,获取大量数据的老本变低。事实上,第二个起因尤为重要,神经网络因为其个性,须要海量的数据进行学习,可供学习的无效数据量往往决定了最初训练出的神经网络的成果,甚至算法的重要性都能够排在数据量之后。而物联网设施,比方智能家电、可穿戴设施等,每天都在产生海量的数据,这些数据通过解决和荡涤后,都能够作为不错的训练数据反哺神经网络。同时,训练进去的神经网络又能够从新利用到物联网设施中,进而造成一个良性循环。图1-1所示为物联网利用人工智能办法进行数据采集-迭代的循环。通过物联网设施采集并训练数据,在数据中心实现训练后,将模型利用到物联网设施,并评估成果进行下一次迭代。 物联网是人工智能落地的一个十分好的利用场景。随着人工智能的迅速倒退,物联网这个同样在很多年前就提出的实践和技术,也会迎来新的春天。目前,互联网数据入口慢慢朝几大巨头(例如阿里、腾讯)汇聚,规模较小的公司获取数据的代价越来越高,__物联网这块还未齐全开发的数据畛域就显得尤为重要__。 这也是本书侧重于物联网平台开发而略过前端设施开发的起因,因为前端设施最终会趋于雷同,呈现同质化竞争,而如何采集和应用好设施产生的海量数据,才是你是否具备竞争劣势的决定性因素。 1.4 物联网的现状与前景 随着5G时代的降临,物联网的倒退将会十分迅速。同时,物联网方向的新增融资也始终处于回升趋势。上面再从利用场景角度来谈一下物联网行业的发展前景。物联网的利用场景十分宽泛,包含: 智慧城市智慧修建车联网智慧社区智能家居智慧医疗工业物联网在不同的场景下,物联网利用的差别十分大,终端和网络架构的异构性强,这意味着在物联网行业存在足够多的细分市场,这就很难呈现一家在市场份额上具备统治力的公司,同时因为市场够大,所以可能让足够多的公司存活。这种状况在互联网行业是不常见的,互联网行业的头部效应非常明显,市场绝大部分份额往往被头部的两三家公司占据。物联网模式绝对于互联网模式来说更“重”一些。物联网的利用总是随同着前端设施,这也就意味着用户的切换老本绝对较高,毕竟拆除设施、重新安装设施比动动手指从新下载一个利用要简单不少。这也就意味着,资本的推动力在物联网行业中绝对更弱。如果你获得了先发劣势,那么后来者想光靠资本的力量赶上或者将你挤出市场,那他付出的代价要比在互联网行业中大得多。所以说,物联网行业目前依然是一片蓝海,小规模公司在这个行业中也齐全有能力和大规模公司同台竞争。在AI和区块链的热度冷却后,物联网很有可能会成为下一个风口。作为程序员,在风口降临之前,提前进行一些常识储备是十分有必要的。  二、常见的物联网协定 2.1 MQTT协定MQTT协定(Message Queue Telemetry Transport,音讯队列遥测传输协定)是IBM的Andy Stanford-Clark和Arcom的Arlen Nipper于1999年为了一个通过卫星网络连接输油管道的我的项目开发的。为了满足低电量耗费和低网络带宽的需要,MQTT协定在设计之初就蕴含了以下几个特点: 实现简略提供数据传输的QoS轻量、占用带宽低可传输任意类型的数据可放弃的会话(Session)随着多年的倒退,MQTT协定的重点不再只是嵌入式零碎,而是更宽泛的物联网世界。 简略来说,MQTT协定有以下个性: 基于TCP协定的应用层协定采纳C/S架构应用订阅/公布模式,将音讯的发送方和接受方解耦提供3种音讯的QoS(Quality of Service):至少一次、起码一次、只有一次收发音讯都是异步的,发送方不须要期待接管方应答MQTT协定的架构由Broker和连贯到Broker的多个Client组成,如图2-1所示。MQTT协定能够为大量的低功率、工作网络环境不牢靠的物联网设施提供通信保障。而它在挪动互联网畛域也庸庸碌碌,很多Android App的推送性能都是基于MQTT协定实现的,一些IM的实现也是基于MQTT协定的。  2.2 MQTT-SN协定MQTT-SN(MQTT for Sensor Network)协定是MQTT协定的传感器版本。MQTT协定尽管是轻量的应用层协定,然而MQTT协定是运行于TCP协定栈之上的,TCP协定对于某些计算能力和电量十分无限的设施来说,比方传感器,就不太实用了。 MQTT-SN运行在UDP协定上,同时保留了MQTT协定的大部分信令和个性,如订阅和公布等。MQTT-SN协定引入了MQTT-SN网关这一角色,网关负责把MQTT-SN协定转换为MQTT协定,并和远端的MQTT Broker进行通信。MQTT-SN协定反对网关的主动发现。MQTT-SN协定的通信模型如图2-2所示。2.3 CoAP协定CoAP(Constrained Application Protocol)协定是一种运行在资源比拟缓和的设施上的协定。CoAP协定通常也是运行在UDP协定上的。 CoAP协定设计得十分玲珑,最小的数据包只有4个字节。CoAP协定采纳C/S架构,应用相似于HTTP协定的申请-响应的交互模式。设施能够通过相似于coap://192.168.1.150:5683/2ndfloor/temperature的URL来标识一个实体,并应用相似于HTTP的PUT、GET、POST、DELET申请指令来获取或者批改这个实体的状态。 同时,CoAP提供一种察看模式,观察者能够通过OBSERVE指令向CoAP服务器指明察看的实体对象。当实体对象的状态发生变化时,观察者就能够收到实体对象的最新状态,相似于MQTT协定中的订阅性能。CoAP协定的通信模型如图2-3所示。  2.4 LwM2M协定LwM2M( Lightweight Machine-To-Machine )协定是由Open Mobile Alliance(OMA)定义的一套实用于物联网的轻量级协定。它应用RESTful接口,提供设施的接入、治理和通信性能,也实用于资源比拟缓和的设施。LwM2M协定的架构如图2-4所示。LwM2M协定底层应用CoAP协定传输数据和信令。而在LwM2M协定的架构中,CoAP协定能够运行在UDP或者SMS(短信)之上,通过DTLS(数据报传输层平安)来实现数据的平安传输。 LwM2M协定架构次要蕴含3种实体—LwM2M Bootstrap Server、LwM2M Server和LwM2M Client。 LwM2M Bootstrap Server负责疏导LwM2M Client注册并接入LwM2M Server,之后LwM2M Server和LwM2M Client就能够通过协定指定的接口进行交互了。 2.5 HTTP协定正如咱们之前所讲,物联网也是互联网,HTTP这个在互联网中广泛应用的协定,在适合的环境下也能够利用到物联网中。在一些计算和硬件资源比拟充分的设施上,比方运行安卓操作系统的设施,齐全能够应用HTTP协定上传和下载数据,就如同在开发挪动利用一样。设施也能够应用运行在HTTP协定上的WebSocket被动接管来自服务器的数据。 2.6 LoRaWAN协定LoRaWAN协定是由LoRa联盟提出并推动的一种低功率广域网协定,它和咱们之前介绍的几种协定有所不同。MQTT协定、CoAP协定都是运行在应用层,底层应用TCP协定或者UDP协定进行数据传输,整个协定栈运行在IP网络上。而LoRaWAN协定则是物理层/数据链路层协定,它解决的是设施如何接入互联网的问题,并不运行在IP网络上。LoRa(Long Range)是一种无线通信技术,它具备应用距离远、功耗低的特点。在下面的场景下,用户就能够应用LoRaWAN技术进行组网,在工程设施上装置反对LoRA的模块。通过LoRa的中继设施将数据发往位于隧道内部的、有互联网接入的LoRa网关,LoRa网关再将数据封装成能够在IP网络中通过TCP协定或者UDP协定传输的数据协定包(比方MQTT协定),而后发往云端的数据中心。 2.7 NB-IoT协定NB-IoT(Narrow Band Internet of Things)协定和LoRaWAN协定一样,是将设施接入互联网的物理层/数据链路层的协定。 ...

October 15, 2020 · 1 min · jiezi

关于firefox:电商搜索随便逛逛想知道大家都在搜什么现在什么最热门

简介: 有时候用户只是轻易逛逛,没有明确的搜寻用意,如何举荐更多优质查问词,疏导其搜寻、购买那?本文结合实际案例使用阿里云凋谢搜寻的解决方案实现优化。 案例背景某O2O电商平台,线下笼罩上百家连锁超市,专一于批发事业,线上应用程序次要为APP端和微信小程序端。为更好更快的推动挪动端的用户笼罩量和沉闷量,造就用户线上生产习惯,心愿在现有搜寻计划的根底上上寻求更多扩大性能晋升用户线高低单转化率。 需要反馈• 最终用户:轻易逛逛,想晓得大家都在搜什么?当初什么最热门? • 业务经营:须要一直的用热门款和促销产品去冲击消费者,产生更多生产; 需要剖析从最终用户的角度: 1. 对榜单、热门、新品、促销流动比拟敏感; 2. 用户只是轻易逛逛,没有明确的搜寻用意,搜寻框能够举荐优质的查问词,疏导其搜寻点击,从而实现转化; 3. 大家都在搜些什么?大家都喜爱的内容,用户也可能会感兴趣; 4. 不想输出查问词,或输出不便,能够缩小用户输出,优化体验; 5. 多样化举荐查问词,既兼顾热门后果,又能够摸索趣味之外的其它内容; 从业务经营的角度: 1. 在用户没有任何输出的时候,也能够举荐优质查问词,对用户用意进行疏导; 2. 举荐查问词既要关注热门水平,又要兼顾多样化,给局部次热门查问词一些曝光机会; 3. 能够联合用户趣味来举荐查问词,既兼顾用户体验,又能够无效的晋升业务指标; 阿里云凋谢搜寻解决方案扩大性能: 热词和底纹处于搜索引擎整个工作流程的最上游,通过举荐热门、优质、多样化的查问词,对用户搜寻用意起到重要的疏导作用,既能够缩小用户输出,优化体验,又能够优化查问词品质,大大降低后续查问用意了解、相关性、排序、经营干涉等环节的调优难度,对晋升整体业务指标能够起到十分好的铺垫作用; 接入流程1. 创立及训练模型 1.1 创立办法: • 调用API/SDK创立模型 (api文档链接, SDK Demo请参考下文) • 通过工单提交给阿里云凋谢搜寻团队。 • OpenSearch控制台界面操作: 9月公布,敬请期待~ 注:上述三种创立办法,任一办法均可。 1.2 舒适提醒: • 一旦创立模型胜利,零碎会每天主动从新训练模型,不再须要人为干涉。 2. 获取热词/底纹后果 在产品中集成热词和底纹性能,能够通过API/SDK来调用热词底纹的举荐后果。 热词性能默认返回10个query,底纹性能默认返回3个query,用于在搜寻框中轮播。 2.1舒适提醒: • 一旦调用创立模型胜利后,后续每日零碎外部会主动执行算法训练任务,用户每日通过API/SDK获取更新的热词即可。 成果优化1. 行为数据 基于统计搜寻日志的热词/底纹后果能够满足冷启动阶段的需要,在这个性能开始发挥作用后,咱们倡议关联热词/底纹的用户点击事件,零碎外部通过采集行为数据(from_request_id和user_id)来进一步优化成果,采集了行为数据有如下几个收益: • 能够统计失去各项指标,诸如疏导搜寻的pv、uv、无后果率等,用来掂量这个性能的应用成果,为后续的改良提供根据。 • 能够剖析用户群的趣味走向,为制订经营策略提供根据。 • 能够采纳智能化的伎俩来举荐query,通过用户的点击行为对数据进行标注,可能依据不同的优化指标来训练模型(默认按点击率优化),通过模型来举荐query,具备较强的泛化能力。 • 能够做个性化的热词举荐,咱们晓得了用户点过哪些query,就能够联合用户的偏好做出有针对性的举荐。 2.热词/底纹疏导搜寻流量 API/SDK获取到的热词/底纹后果中会返回一个request_id, 用于惟一标识这一次申请。通常,如果产品中集成了热词/底纹后果,当终端用户点击了热词或底纹词后,便会以该热词或底纹词作为搜索词触发一次搜寻申请,通过在搜寻申请中将from_request_id参数设置为热词/底纹后果返回的request_id,就能够关联这一次用户点击行为,后盾通过搜寻日志剖析和统计了这些点击行为,就能够在业务经营报表中看到由热词/底纹疏导的搜寻流量指标。如果在搜寻申请中设置了user_id参数,业务经营报表中还能够看到热词/底纹疏导的搜寻UV指标。 ...

September 14, 2020 · 1 min · jiezi

关于firefox:开放下载无需从0开发-平头哥教你1天上手蓝牙Mesh应用解决方案

当你疲乏了一天,回到家里,点点手机灯就亮了,再唤醒天猫精灵放首歌,这样智能的家,恐怕这是很多人梦寐以求的吧。而蓝牙 MESH 智能灯,是智能家居零碎中最根底的设施。蓝牙 MESH 智能灯是如何实现轻松、高效地管制灯的状态呢?本书将以智能灯的开关利用开发为例领导读者进行 MESH 开发。 此外,本书还介绍如何触发模仿智能开关,用来管制智能灯的开关状态;如何进行MESH Light的性能演示;如何实现罕用的灯控利用场景…还等什么?《无需从0开发 平头哥教你1天上手蓝牙Mesh利用解决方案》现已凋谢下载啦,即刻珍藏浏览吧! [点击收费下载 《无需从0开发 平头哥教你1天上手蓝牙Mesh利用解决方案》>>>](https://developer.aliyun.com/... 通过本书的指引,开发者能够理解业内性能当先的Mesh协定栈、智能开关开发指南、智能灯控开发指南…疾速上手蓝牙Mesh利用计划,解决10多个多场景配网难题。 也可在PC端关上 https://developer.aliyun.com/topic/download?id=717 下载 —目录— 点击查看蓝牙 Mesh 网络及 SDK 概述>>>点击查看蓝牙 Mesh SDK 疾速上手>>>点击查看蓝牙 Mesh 规范 Model 开发指南>>>点击查看蓝牙 Mesh 公有 Model 开发指南>>>点击查看蓝牙 Mesh 开关开发实例 >>>点击查看蓝牙 Mesh 灯控开发实例>>>点击查看蓝牙 Mesh 配网模组用户手册(基于 AT 命令)>>>点击查看蓝牙 Mesh 配网模组的二次开发指南>>>时下,“新基建”晋升为最新热门网络词汇,被频频提及。相比传统的基建,“新基建”是立足于高新科技的基础设施建设。随着社会将来向智能化的逐步倒退,越来越多的计划抉择蓝牙 Mesh 技术。凭借多对多通信、配置简略、低成本、平安及去核心网络等协定劣势,蓝牙 Mesh 网络失去疾速倒退,尤其在天猫精灵等智能家居生态的广泛应用。 在“新基建”的热潮下,平头哥给开发者提供了怎么的蓝牙Mesh利用计划?开发者如何晋升产品创新能力?《无需从0开发 平头哥教你1天上手蓝牙Mesh利用解决方案》助力开发者把握新机遇,弄潮新基建! —精彩章节领先看— 原文链接 本文为阿里云原创内容,未经容许不得转载。

August 19, 2020 · 1 min · jiezi

H5唤醒App快速直达App核心页面

在这个流量为王的互联网背景下,移动端的H5页面显然在导流上承担着重要作用,在H5页面上,我们对引流的需求有两种: 一是引导已下载用户从H5页面唤醒App并直达指定场景二是引导未下载用户从H5页面下载App,首次打开App时直达指定场景从运营角度来看,引导已下载用户打开App,能提高用户粘性和活跃度,而用户在App内的产品体验自然也比H5页面要好;引导未下载用户下载App并进入指定页面,显然能给用户更好的产品初体验。 这里其实就解释了我们做H5唤醒App并直达指定页面的必要性。 涉及哪些要素?唤醒App这件事,在不同平台要采用不同的方法,主要是这三个: URL SchemeUniversal LinkAndroid App Links1、URL Scheme URL Scheme是iOS、Android都兼容的机制,只需要原生App开发时注册Scheme即可,用户点击此类链接时,会自动唤醒App,并借助URL Router机制跳转到指定页面。 <scheme name> : <hierarchical part> [ ? <query> ] [ # <fragment> ]<scheme name>:是scheme的名称,代表着协议名称。<hierarchical part>:它包含 authority 和 path。<query>:可选项目,隔开或&隔开的键值对<key>=<value><fragmentg> :可选项目包,其它额外的标识信息 尽管URL Scheme兼容性高,但却存在许多限制,比如: 国内各个厂商浏览器差异很大,当要被唤醒的目标App未安装时,这个链接很容易出错。当注册有多个Scheme相同的时候,目前是没有办法区分的。不支持从其他App中的UIWebView中跳转到目标App。被部分主流平台禁止,微信、微博、QQ浏览器、手机百度中都已经被禁止使用。正是由于这些限制的存在,苹果和安卓都不约而同发布了自己的第二套方案:iOS的Universal Link、Android的App Links。 2、Universal Link Universal Link是iOS9后苹果推出的通用链接技术,能够方便的通过一个https链接来打开App指定页面,不需要额外的判断,如果没有安装App,可以跳转到自定义地址。 相对Scheme的优势在于,Universal Link是一个Web Link,因此少了很多麻烦: 当用户已安装该App时,不需要加载任何页面,能够立即唤醒App,用户未安装App,则跳去对应的web link(自定义页面)。Universal Links支持从其他App中的UIWebView中跳转到目标app。提供Universal Link给别的App进行App间的交流,然而对方并不能够用这个方法去检测你的App是否被安装,具有比较好的隐私性。绝大多数平台都支持Universal Link,微信7.0.5版本也解除了对Universal Link的限制,同时也能被搜索引擎索引。 3、App Links Android M以上版本可以通过App Links,让用户在点击一个链接时跳转到App的指定页面,前提是这个App已经安装并经过验证。App Links的最大的作用,就是可以避免从页面唤醒App时出现的选择浏览器选项框,前提是必须注册相应的Scheme,就可以实现直接打开关联的App。 实际上App Links和Universal Links差异不大,但相对来说有不同的限制: App links在国内的支持还不够,部分安卓浏览器并不支持跳转至App,而是直接在浏览器上打开对应页面。系统询问是否打开对应App时,假如用户选择“取消”并且选中了“记住此操作”,那么用户以后就无法再跳转App。几个方案的缺陷这几种方式无论哪种都无法解决这几个问题: 当用户未安装目标App时,无法保留用户停留的上下文,也就是说,用户下载完App后,无法在首次打开App时还原指定页面。Web目前无法监听App是否已安装,因此这几个方案都需要一些其他方法兼容唤醒App,或者跳转下载页面。那么怎样实现用户安装App后进入指定页面呢? 众所周知,苹果出于用户隐私的保护,设置了名为沙盒的机制:应用只能访问它声明可以访问的资源,但沙盒也阻碍了应用间合理的信息共享。 但也不是完全没办法,比如使用模糊匹配,尽可能收集设备的特征,将Web和App上的信息点配合算法做一个匹配是可以做到的,但准确率和成功率就取决于算法本身。如果App本身业务需求不高,那么低精度的方案也可以满足,但如果业务上需要一个能做到一对一精准匹配的方案,那么精准度不够高显然会影响业务的开展。 第三方服务如果嫌精准度不够高或者实现难度太大的话,可以交给专业的第三方去做,毕竟这几项技术是基于系统平台的,Android 及 iOS 每个系统版本的迭代后,配置方式都会有新的变化,且安卓机型众多,浏览器众多等也会导致出现兼容问题,开发者自行研发的话,资源配置以及系统更新后的维护成本是比较高的,还要考虑各种各样的跳转场景问题。 ...

October 9, 2019 · 1 min · jiezi

console中的d-s等占位符

前端开发中经常用到浏览器的console控制台,而在console.log和console.debug中有时候可以看见%d %s这样的符号,其意义和用法如下 占位符含义%s for a String value 代表字符串%d 或 %i for a Integer value 代表整数%f for a Floating point number 代表浮点数%o for an Object hyperlink 代表对象的超链接例子var name = "David";var num = 24;var height = 180.5;var obj = { job: 'web developer',};console.log('%s is %d years old, and he is %fcm tall.\nMore details in: %o', name, num, height, obj); 参考https://stackoverflow.com/que...https://blog.csdn.net/linusc/...

July 4, 2019 · 1 min · jiezi

FireFox和Safari兼容eventpath

在项目开发中遇到需要获取触发事件元素冒泡过程的所有元素,在Chrome中可以通过event.path获取。 element.onClick(event) { const ev = window.event || event; const path = ev.path;}该属性在Chrome和Opera浏览器下没问题,但是在Firefox和Safari中发现event并没有path属性。 进过查找资料发现,在浏览器新的标准里定义的composedPath可以获取 element.onClick(event) { const ev = window.event || event; const path = event.path || (event.composedPath && event.composedPath()); console.log(path) //[button#btn, div, body, html, document, Window]}

June 18, 2019 · 1 min · jiezi

如何更好的使用bug管理工具MadPecker场景篇

Hi,大家好,我是MadPecker,一款免费,好用的缺陷(Bug)管理SaaS软件 今天,我给大家介绍一下在项目开发过程中可能遇到的几个场景! 网址:www.madpecker.com 场景一“小啄,首页的UI样式帮我改一下。”“小啄,你那个接口写好了没有啊?”“小啄,刚刚和你说的那个BUG改得怎么样了?” ...... ......“老大,你刚刚叫我改什么来着?”我们都知道,在项目进行的过程中一定会出现形形色色的问题。显然,口头表述并不是一种好的问题解决方式。如果把各种问题全部堆积在聊天工具上,开发人员不停地上翻聊天记录也不是个办法。MadPecker的任务管理工具把所有的任务归类好,展示在任务列表上,不管是BUG、测试、开发、还是需求,任务创建者只需要把这个任务指派给项目中的某个成员,这个处理人就能收到提醒并及时处理任务。 上传图片时,MadPecker支持点击上传、拖拽上传和粘贴上传。 提交BUG页 BUG详情页场景二“小啄,我注册登录的模块已经开发好了,你帮我测一下呗。”“行!”......“咦,小啄,你是不是没写测试用例啊,这个功能你好像漏测了呢!” 测试漏项、测试不规范等问题一直困扰着测试工作者。MadPecker中的测试管理共分为测试用例、测试场景、测试执行三个部分,测试人员可以根据场景录入测试用例,也可以在录入测试用例的时候关联测试场景,并且用例可以复用,进一步减少了测试人员的工作量。在测试执行中,对一个场景测试不通过,测试人员可以直接提交BUG给开发人员。MadPecker完成了测试人员与开发人员之间的互动,把整个测试流程变得紧凑起来。 提交测试用例页 测试场景列表页 测试执行操作页场景三“在XX应用商店发布应用太慢了吧!”没错,对于很多急于上线的用户来说,大部分应用商店的上传机制经常会让应用上传之后还要经过漫长的时间才能将应用推向大众。MadPecker支持应用随时上传随时下载,上传应用之后,系统自动生成二维码,方便用户下载。并且MadPecker支持合并应用功能,不同平台的应用可以合并成同个二维码,所以不同平台的手机都可以扫描同个二维码下载应用了。 下载应用界面 以上为本期全部内容,如果您想要了解更多关于MadPecker的使用或者您想要了解我们的平台其他功能更新,欢迎您到我们的帮助中心查看。同时,如果您对我们的平台有哪些疑惑或建议,欢迎您到我们的用户社区/官方QQ群/微信群畅所欲言。

May 13, 2019 · 1 min · jiezi

浏览器元素尺寸与位置查询指南

前言这篇文章主要介绍了有关浏览器中获取坐标以及尺寸的几种途径,算是比较全的一篇文章了. 在浏览器中获取元素的坐标以及尺寸是非常容易的,有非常多种方式来完成这些需求,但是杂乱的API和很多兼容处理导致了浏览器中没有直接的方式来获取我们想要的结果. 仔细想想这个问题,为什么浏览器并没有直接提供一个简单的属性就告诉你浏览器窗口的大小,或者一个元素的宽高. 就拿div元素来举例,我们有很多的问题影响到了元素宽高: border 是否纳入宽高的计算?padding 是否纳入宽高的计算?magin 是否纳入宽高的计算?box-sizing:border-box; 时候该如何计算?父元素使用了overflow:hidden;把我们的元素裁剪了,这时候的宽高该如何计算?元素使用了overflow出现了滚动条此时该如何计算?而如果要获取一个浏览器窗口的大小,你还要面对我们到底是要获取哪个大小? 屏幕大小?浏览窗口大小?浏览区域大小?是否包含滚动条?当然最终你还要面临一个兼容问题,致我们敬爱的IE浏览器,不过本文可不探讨浏览器之间的差异.不过本文的涉及到的内容应该在IE9以上都是可以正常使用的(不过建议你还是查下can i use 或者MDN). 浏览器部分浏览器的宽高计算主要通过window对象来完成. 这个对象上提供了几个关键属性: window.innerWidthwindow.innerHeightwindow.outerWidthwindow.outerHeight用人类语言来描述这几个属性就是. 属性名称人类解释innerWidth获取页面可视区域的宽度包括右侧的滚动条(如果有的话).所谓的可视区域就是HTML页面的内容区域不包括浏览器自身的ui所占用的空间(地址栏和菜单栏等).innerHeight获取页面可视区域的高度包括底部的滚动条(如果有的话).解释同上.outerWidth获取浏览器窗口宽度.outerHeight获取浏览器窗口高度.友情出演windows画图: 注意:单位均为px. 注意:滚动条并不视为浏览器的ui中的内容,而是视为内容区域的一部分,右侧默认的滚动条的宽度包含在window.innerWidth中,但是不属于html元素和html下的任何元素. 元素部分属性属性名称人类解释element.clientWidth元素内容区域宽度+padding的宽度,如果宽度溢出且裁剪那么不包含被裁剪掉的部分.element.scrollWidth当子元素宽度溢出,这里提供的是子元素的宽度包括溢出的部分,大小计算和clientWidth一样.element.offsetWidth相当于计算边框宽度的clientWidth,宽度计算为content+padding+border.element.clientHeight元素内容区域高度+padding的高度,如果高度溢出且裁剪那么不包含被裁剪掉的部分.element.scrollHeight当子元素高度溢出,这里提供的是子元素的高度包括溢出的部分,大小计算和clientHeight一样.element.offsetHeight相当于计算边框高度的clientHeight,高度计算为content+padding+border.element.clientLeft元素左边框的宽度element.scrollLeft计算较为复杂,看后续详解element.offsetLeft计算比较复杂,看下面详解element.clientTop元素上边框的宽度element.scrollTop计算较为复杂,看后续详解element.offsetTop计算比较复杂,看下面详解滚动条的规律无论是横向滚动条还是纵向滚动条,对于测量clientXXX这个单位来说是不包括滚动条的宽(高)的. 例如在下面这张图中我们进行测量父元素(黑色区域)的clientWidth结果和子元素(红色区域)的clientWidth的大小是一样的. 不过需要注意的是,一旦出现了滚动条对于clientWidth来说就意味着宽度减小(高度同理). 注意:图片所指的宽度是clientWidth API名称是否包含滚动条大小offsetXXX包含clientXXX不包含scrollXXX不包含所以在margin:0;padding:0;border-width:0;情况下offsetWidth - clientWidth=滚动条的宽度. 通过这种方式我求出了chrome浏览器滚动条大小是17px整,但是不要忘记这些API只会返回整数. 注意:scrollXXX对于滚动条计算的规则和clientXXX表现一致. 含有box-sizing:border-box的计算请记住,对于clientXXX来说,元素的大小就是padding+content. 而使用border-box后元素的表现就是padding和border的修改就不会影响到元素的大小. 此时width是多少clientWidth就是多少,height同理. 但是不要忘记了边框不参与clientXXX的计算,所以border的修改并不会影响元素的宽高变化,那么那么当border变大,对应的clientXXX就变小. 一个元素设置了border-box: box{ width:100px; padding:20px; border:20px solid; box-sizing:border-box;}此时clientWidth= 100px - 20px*2(左右边框的宽度) = 60px 由于offsetXXX的计算是包含border的大小的,所以如果一个元素设置了border-box那么offsetWidth就等于元素的width大小,因为border被限制到了width中. offsetTop和offsetLeft子元素的offsetWidth|height是相对于父元素内容区域(padding+content)左侧和顶部的偏移量. 这个两个是相对值,是要求出向对于父级使用定位情况下来进行计算的,这个父元素可以通过HTMLElement.offsetParent来获取到. 例如:父级使用absolute或者relative. 注意:后文提出的父元素都指的是使用了相对定位的父元素. 注意:以上都是对于块级元素所描述的,对于行内元素或者td等元素相对的父元素不尽相同,这里不考虑这些情况,详情可以查看上方的链接. 情况1 在子元素使用了绝对定位的情况下,父元素无法干预子元素,所以子元素的scrollLeft就是left+margin-left. 情况2 第二种情况就是父元素和子元素都使用了相对定位,而相对定位是不脱离文档流的,那么父元素的padding-left就会影响到子元素的scrollLeft属性. 在线实例 注意:貌似offsetTop和Left在不同浏览器下有不同计算值,会带来兼容性问题,这里就不展开了,有兴趣的读者可以去查阅相关资料. scrollTop和scrollLeft首先scrollTop和scrollLeft是一对可读写的属性,这意味着你可以获取他的值也可以设置它从而控制滚动的距离. 注意:scrollTop|scrollLeft是用在含有滚动区域的元素上(图中黑色边框的元素),而不是被滚动的元素上测量,被滚动的元素scrollTop永远是0. 简单理解:在垂直方向上含有滚动条的元素的内容区域的顶部(padding+content)相对于自身顶部边框的底部向上移动的距离(水平方向同理). 就是scrollTop的大小(图中超出去的部分). 元素方法getBoundingClientRect关于这个方法建议阅读MDN的指南.当然你也可以选择听我瞎扯几句. 这个api是ie首先提出(早在ie4时候就有了)的这也是ie对web开发的贡献之一. 调用这个api会返回一个DOMRect对象,这个对象多次易名,不过没有变化过基本概念. ...

May 12, 2019 · 1 min · jiezi

浏览器内核

1.什么是内核,及浏览器作用浏览器的主要功能就是向服务器发出请求,在浏览器窗口中展示您选择的网络资源。这里所说的资源一般是指 HTML 文档,也可以是 PDF、图片或其他的类型。资源的位置由用户使用 URI(统一资源标示符)指定。浏览器解释并显示 HTML 文件的方式是在 HTML 和 CSS 规范中指的。这些规范由网络标准化组织 W3C(万维网联盟)进行维护。多年以来,各浏览器都没有完全遵从这些规范,同时还在开发自己独有的扩展程序,这给网络开发人员带来了严重的兼容性问题。如今,大多数的浏览器都是或多或少地遵从规范。浏览器的内核是指支持浏览器运行的最核心的程序,分为两个部分的,一是渲染引擎,另一个是JS引擎。渲染引擎在不同的浏览器中也不是都相同的。 2.主流浏览器主流浏览器是有一定市场份额且有自己独立研发内核的浏览器份额排行:https://tongji.baidu.com/data...IE/Edge,Chrome,Safari,Opera,Firefox 3.浏览器引擎列表 3.几大厂商浏览器内核简介IE/Edge:微软的IE浏览器浏览器更新至IE10后,伴随着WIN10系统的上市,迁移到了全新的浏览器Edge。除了JS引擎沿用之前IE9就开始使用的查克拉(Chakra),渲染引擎使用了新的内核EdgeHTML(本质上不是对Trident的完全推翻重建,而是在Trident基础上删除了过时的旧技术支持的代码,扩展和优化了对新的技术的支持,所以被看做是全新的内核)。Safari:Safari自2003年面世,就一直是苹果公司的产品自带的浏览器,它使用的是苹果研发和开源的Webkit引擎。Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来。Webkit2发布于2010年,它实现了元件的抽象画,提高了元件的重复利用效率,提供了更加干净的网页渲染和更高效的渲染效率。另外,Webkit也是苹果Mac OS X系统引擎框架版本的名称,主要用于Safari、Dashboard、Mail。Chrome:提到Chrome浏览器,一般人会认为使用的Webkit内核,这种说法不完全准确。Chrome发布于2008年,使用的渲染内核是Chromium,它是fork自Webkit,但把Webkit梳理得更有条理可读性更高,效率提升明显。2013年,由于Webkit2和Chromium在沙箱设计上的冲突,谷歌联手Opera自研和发布了Blink引擎,逐步脱离了Webkit的影响。所以,可以这么认为:Chromium扩展自Webkit止于Webkit2,其后Chrome切换到了Blink引擎。另外,Chrome的JS引擎使用的V8引擎,应该算是最著名和优秀的开源JS引擎,大名鼎鼎的Node.js就是选用V8作为底层架构。Firefox:火狐的内核Gecko也是开源引擎,任何程序员都能为其提供扩展和建议。火狐的JS引擎历经SpiderMonkey、TraceMonkey到现在的JaegerMonkey。其中JaegerMonkey部分技术借鉴了V8、JSCore和Webkit,算是集思广益。Opera:Opera在2013年V12.16之前使用的是Opera Software公司开发的Presto引擎,之后连同谷歌研发和选择Blink作为Opera浏览器的排版内核。4.国内浏览器情况国内浏览器厂商(QQ、2345、搜狗、猎豹、UC、360)也有一定的市场占有率。且大多数为双核总结国内厂商内核来看,一般为三类:一、使用的Trident单核,如:2345、世界之窗;二、使用Trident+Webkit/Blink双核,如:qq、UC、猎豹、360、百度;三、使用Webkit/Blink单核,如:搜狗、遨游。 双核浏览器通过WebKit内核来访问一些不需要进行网上交易的网站,使用起来速度更快更方便;双核浏览器在进行支付系统或者是网上银行的访问时,则使用的是Trident内核。这就是双核浏览器的高速模式和兼容模式。双核浏览器是一个不仅仅具有ie浏览器内核同时兼容非ie浏览器内核的浏览器,可以让用户在浏览器当中体验不同的需求。

May 11, 2019 · 1 min · jiezi

我是如何用Madpecker去管理bug的

现在国内外的bug工具很多,今天我要说的是我们团队现在用的一款功能强大操作方便的bug管理工具---MadPecker,我们平时提BUG、做测试、敏捷开发什么的都是用的这个。 1.登录他们的官网 https://www.madpecker.com/home2.注册一个账号,这个工具是完全免费的,这一点是很良心的 3.接着就可以进入MadPecker工具平台了 4.首先创建一个项目,并给项目一个名称 5.为项目添加所需工具(敏捷面板真的不错) 6.添加项目成员 7.bug管理界面,可以在这里创建、管理、查看bug 8.同时可以在bug统计界面来查看多角度的bug统计报表 9.测试管理界面,在这里可以直接创建测试流程,通过测试执行进行测试 10.应用发布界面,在这里发布你的应用 11.敏捷面板中的需求看板可以看到客户提的各种需求以及需求所在的流程位置 12.敏捷面板中的迭代看板,在此看板进行每次的迭代,既可以查看与迭代相关的需求,也可以在这里创建迭代中的所需处理的任务 MadPecker这个bug管理工具非常适合用于敏捷开发,尤其契合各类开发团队的办公方式,从功能上来看摒弃了一些办公软件花哨的东西把功能着重于实际,而且现在来看目前此软件属于刚上线,后续应该会有一些新功能的添加。

April 30, 2019 · 1 min · jiezi

浏览器触发保存密码条件

触发浏览器保存密码条件input[password]submit提交https(Firefox)关闭密码填充设置autocomplete无效值,有效值见https://developer.mozilla.org...注:autocomplete="off"是无效的,原因好像是chrome觉的他们更懂用户体验 nwjs设置保存密码chrome.privacy.services.passwordSavingEnabled.set({ value:true });

April 28, 2019 · 1 min · jiezi

你们要的HTML布局技巧:如何规范搭建网页架构?

单就深入了解布局规范都足够说上一个月的,今天我就不论大范围,挑选小米网站首页的部分区块布局来讲解吧!下面是小米官网的首页,很多人一看到这样的网页就傻眼,不知道咋弄,要么就随性布局,要么就干看着,其实遇到问题首先一点就是不要慌,先分析,将你认为难的问题拆分成多个问题区块,还解决不了就再拆分,直到变成能解决的小问题,一个个解决那些小问题最终大问题也就搞定了。咱们布局网页前也是一样套路,先分析整体的架构,画出布局图将大块拆分为小块,这样会更加直观看到网页的布局结构。我大致上用线框将网页内容划分为四个区块:顶部导航条区域topnav(蓝色线框)、头部分类导航区域header(绿色线框),主体内容区域main(紫色线框)、网页底部信息区域foot(橘色线框)。(注意:在初学不知道如何布局时建议使用画图工具做辅助分析。且并非只有这一种区块划分方式,布局有很多种,我只从其中挑一种来写,讲不完=_=||)这里我是按照整体网页的内容进行区块划分的:(每个线框都为一个标签盒子)topnav(顶部导航区域):从整体布局来看,topnav展示的内容都是小米网站下所有类别的子产品导航,而小米网站的首页主题是商城(直接展示电子类产品),它跟主题不符,所以这块区域单独划分出来。整体区块使用nav标签,考虑兼容性的话就使用div标签。header(头部分类信息导航区域):这块区域主要包含不同商品的分类导航和其他的服务导航,和主题也不太相符。轮播和轮播下方图片因为位置原因,打开该网页第一眼看见的就是这部分区块,即便其中也包含商品,但更多的是具有广告位的性质,这里就单独划分出header区块。整体区块使用header标签,考虑兼容性的话就使用div标签。main(主体内容区域):小米首页下小米商城的主题内容区域,也是整体网页面积最广的区块(实在不知道定主体内容区块时也可以根据面积比重来划分,最大的那块一定是主题中心),布局的重复性很高。整体区块使用main标签,考虑兼容性的话就使用div标签。footer(网页底部信息区域):这部分几乎没啥好说的,展示的都是网站特色、网站信息,也单独划分一个块。整体区块使用footer标签,考虑兼容性的话就使用div标签。代码如下:(考虑兼容IE)<div id=“pagewrap”> <div id=“page-topnav”></div> <!–导航区域–> <div id=“page-header”></div> <!–头部分类信息导航区域–> <div id=“page-main”></div> <!–主体内容区域–> <div id=“page-footer”></div> <!–网页底部信息区域–></div>这样咱们就将网页划分为四大块了,看起来难度是不是比之前要小一点了呢?那下一步就是将各个区块看做单个的整体,对它进行分析再拆分。topnav布局分析红色线框:顶部导航栏区域()黄色线框:内容盒子蓝绿色线框:左右两块列表区域如下布局图所示,顶部导航栏区域中,内容盒子宽度在1226px,水平居中,其内部又分为左右两块列表区域和一个div盒子(购物车),都包含着文字链接。对应标签结构代码:<div id=“page-topnav”> <div class=“container”> <ul class=“topbar”> <li><a href="#">小米商城</a></li> <li><a href="#">小米商城</a></li> <li><a href="#">小米商城</a></li> <li><a href="#">小米商城</a></li> <li><a href="#">小米商城</a></li> <li><a href="#">小米商城</a></li> <li><a href="#">小米商城</a></li> <li><a href="#">小米商城</a></li> <li><a href="#">小米商城</a></li> <li><a href="#">小米商城</a></li> <li><a href="#">小米商城</a></li> <li><a href="#">小米商城</a></li> </ul> <ul class=“info”> <li><a href="#">登录</a></li> <li><a href="#">登录</a></li> <li><a href="#">登录</a></li> </ul> <div class=“cart”> <a href="#">购物车</a> </div> </div></div><!–文字内容我懒的写,复制粘贴的,自己私下练习记得一个个敲–>标签搭建好结构还需要搭配css来使用,这里顺便把相关的css技巧我也讲几个.container(黄色线框)本身就是一个块级元素,不改变元素类型的前提下实现水平居中有以下几种方式:第一种:(当前场景下推荐使用这种居中方式)page-topnav .container{width:1226px; margin:0 auto; }使用margin:auto实现自动计算达到水平居中,注意这种居中方式作用对象必须是块级标签,且有固定的宽度才可以实现第二种:page-topnav .container{position: relative;left: 50%;width: 1226px;margin-left: -613px;}使用相对定位,通过设置left让.container向右移动50%的相对距离,再利用负左外边距向左移动自身宽度的一半距离,达到水平居中的效果。参考下图:两个左右ul分别添加左浮动float:left;和右浮动float:right;就能实现左右对齐li中的文本实现水平垂直居中的几种方式:第一种:.container .topbar li{height: 40px; /盒子高度/line-height: 40px; /行高/font-size: 14px; /文字大小/text-align: center; /盒子内的文本水平居中/}将文本的行高与li盒子高度设为一致,达到文本垂直居中效果。第二种:.container .topbar li{padding: 10px;}给li添加内边距,实现文本上下左右居中效果,但会造成li高度不固定。所以当前场景下推荐第一种方式——–临时有事,明天接着补,如果对文章有疑问或基础学习上有问题可以和我交流—- ...

March 8, 2019 · 1 min · jiezi

从浏览器内核开始01

什么是浏览器内核?浏览器最核心的部分应该是浏览器内核“Rendering Engine”,也称之为“渲染引擎”,其主要作用时负责对网页语法进行解释,并渲染网页。所以“渲染引擎”决定了浏览器如何显示网页网页内容及网页格式信息。不同的浏览器内核对网页编写的语法的解释也不同,导致的渲染效果可能不同,这就造成了兼容处理问题。常见的浏览器内核有哪些呢?1.Trident [’tradnt]Trident(IE内核):该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到IE11,也被普遍称作”IE内核”。由于IE本身的“垄断性”(想起了一句话:让一个人失败,就让其膨胀,哈哈哈),而使得Trident内核长时间未能更新,进而导致与W3C标准脱节和暴露出安全性问题。2011年,从ie 9开始,Trident开始支持HTML5和CSS 3。 IE从版本11开始,初步支持WebGL技术。IE8的JavaScript引擎是Jscript,IE9开始用Chakra。 Trident内核的常见浏览器有:IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);360安全浏览器(1.0-5.0为Trident,6.0为Trident+Webkit,7.0为Trident+Blink);360极速浏览器(7.5之前为Trident+Webkit,7.5为Trident+Blink);猎豹安全浏览器(1.0-4.2版本为Trident+Webkit,4.3及以后版本为Trident+Blink);UC浏览器(Webkit内核+Trident内核);2.Gecko Gecko(Firefox内核),Gecko的特点是代码完全公开,也是一个跨平台内核; JavaScript引擎是:SpiderMonkey(1.0-3.0)/ TraceMonkey(3.5-3.6)/ JaegerMonkey(4.0-)。3.PrestoPresto(Opera前内核) (已废弃): Opera12.17及更早版本曾经采用的内核,该款引擎的特点就是渲染速度的优化达到了极致,然而代价是牺牲了网页的兼容性。Opera现已改用Google Chrome的Blink内核。4.WebkitWebkit(Safari内核,Chrome内核原型,开源):它是苹果公司自己的内核,也是苹果的Safari浏览器使用的内核。Webkit引擎包含了WebCode排版引擎和JavaScriptCode解析引擎,分别是从KDE的KHTML和KJS衍生而来,它们都是自由软件,在GPL条约下授权,同时支持BSD系统开发。Chrome、360极速浏览器以及搜狗高速浏览器也使用Webkit作为内核(在脚本理解方面,Chorome使用自己研发的V8引擎)。5.Blink 这是由Google和Opera Software开发的浏览器排版引擎,Google计算将这个渲染引擎作为Chromium计划的一部分,并且在2013年4月公布了这一消息。这一渲染引擎是开源引擎Webkit中WebCore组件的一个分支,并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex浏览器中使用。以上提到的引擎为排版引擎,浏览器还需搭载js引擎。Chromium就是Blink排版引擎+V8 js引擎。Chromium是由Google主导开发的网页浏览器。目前国内浏览器使用情况认识浏览器 内核Chrom (Blink)IE (Trident)Edge (EdgeHTML (Trident的一个分支))Firefox (Gecko)Safari (WebKit)Opera (Blink)360安全浏览器 (Trident + Chromium)360极速浏览器 (Trident + Chromium)QQ浏览器 (Trident + Chromium)搜狗浏览器 (Trident + Chromium)百度浏览器 (Trident + Chromium)2345浏览器 (Trident + Chromium)UC浏览器 (Trident + Chromium)

March 4, 2019 · 1 min · jiezi

GET和POST两种基本请求方法的区别

GET和POST两种基本请求方法的区别getpost回退回退时无害会再次提交请求记录URL可被记录, 用于再访问不可以缓存主动缓存可手动设置编码方式只进行url编码多种编码方式参数长度有长度限制无参数数据类型只接受ASCII字符无限制参数位置通过URL传递在Request body中安全性低高参考https://www.cnblogs.com/logsh…

March 1, 2019 · 1 min · jiezi

去除 Firefox 当前选中标签页顶端的线条

Firefox 当前选中的标签页的最上方会显示有一条线,我觉得很丑,如图:通过搜索,可以通过下面的方法去除。在地址栏输入 about:support ,然后点击打开目录。在此目录中创建一个 chrome 文件夹(若没有),然后进入 chrome 文件夹,创建名为 userChrome.css 的文件,打开文件输入:#TabsToolbar .tabbrowser-tab[selected] .tab-line { display: none !important;}保存后,重启 Firefox。效果图:

January 22, 2019 · 1 min · jiezi

浏览器端用JS实现创建和下载图片

问题场景在前端很多的项目中,文件下载的需求很常见。尤其是通过JS生成文件内容,然后通过浏览器端执行下载的操作。如图片,Execl 等的导出功能。日前,项目中就遇到了这类需求,在浏览器端实现保存当前网页为图片,然后还可以下载。解决方案网页生成图片这里可以采用 html2canvas 来实现。并且可以兼容大部分主流的浏览器。Firefox 3.5+Google ChromeOpera 12+IE9+Safari 6+文件下载第一种方案HTML5 新增了 download 属性,只要给 download 加上想要导出的文件名即可。如 download=“file.jpg”。想要详细的了解此属性,可以参考 张鑫旭 写的一篇博文,传送门。简单代码实现如下:import html2canvas from ‘html2canvas’;// 生成图片,并自动下载function captureScreenshot() { const preview = document.querySelector(’.preview-graphs’); html2canvas(preview).then((canvas) => { var img = document.createElement(‘a’); img.href = canvas.toDataURL(‘image/jpeg’).replace(‘image/jpeg’, ‘image/octet-stream’); // 下载的文件名字 img.download = file.jpg; img.click(); }) }Note:上述实现,目前只有 Google Chrome 功能是正常的。兼容性存在很大的问题。第二种方案这里可以采用 FileSaver.js。需以 Blob 的形式来进行保存。canvas 提供了一种创建 Blob 对象的方法 canvas.toBlob((blob) => {}) ,但是兼容性堪忧,绝大部分浏览器都没有实现。因此官网特意提供了这样的一个库,canvas-toBlob.js。FileSaver.js is the solution to saving files on the client-side, and is perfect for web apps that generates files on the client, However if the file is coming from the server we recommend you to first try to use Content-Disposition attachment response header as it has more cross-browser compatible. - 摘自官网FileSaver.js 是在客户端保存文件的解决方案,非常适合在客户端生成文件的Web应用程序,但是如果文件来自服务器,我们建议您首先尝试使用 Content-Disposition 附件响应 标题,因为它有更多的跨浏览器兼容。可以兼容主流的浏览器,如 Firefox,Chrome,Edge,IE 10+ 等。代码实现如下:import html2canvas from ‘html2canvas’;import FileSaver from ‘file-saver’;// 这里没有用 canvas-toBlob.js// base64 转换成 Blobfunction dataURLToBlob(dataURL) { var BASE64_MARKER = ‘;base64,’; var parts; var contentType; var raw; if (dataURL.indexOf(BASE64_MARKER) === -1) { parts = dataURL.split(’,’); contentType = parts[0].split(’:’)[1]; raw = decodeURIComponent(parts[1]); return new Blob([raw], {type: contentType}); } parts = dataURL.split(BASE64_MARKER); contentType = parts[0].split(’:’)[1]; raw = window.atob(parts[1]); var rawLength = raw.length; var uInt8Array = new Uint8Array(rawLength); for (var i = 0; i < rawLength; ++i) { uInt8Array[i] = raw.charCodeAt(i); } return new Blob([uInt8Array], {type: contentType});}// 生成图片,并自动下载function captureScreenshot() { const preview = document.querySelector(’.preview-graphs’); html2canvas(preview).then((canvas) => { const fileBlob = dataURLToBlob(canvas.toDataURL(‘image/jpeg’).replace(‘image/jpeg’, ‘image/octet-stream’)); const fileName = file.jpg; FileSaver.saveAs(fileBlob, fileName); }); }相关链接BlobHTMLCanvasElement.toBlob()HTMLCanvasElement.toDataURL() ...

January 17, 2019 · 2 min · jiezi

玩转控制台,看看那些你不知道的Console用法

前言作为前端工程师,我们每天都离不开用控制台调试代码,console.log也成了我们最常用的命令,那除了用console.log,还有许多console的方法可以使用,熟练掌握它们,可以让我们在控制台看到的信息更美观准确,也会大大提高我们的开发效率哦,下面就跟小肆一起来看看吧.Chrome的控制台大部分常用浏览器都有各自的控制台,不过小肆用着最习惯的还是Chrome的控制台,打开chrome,win系统按F12,mac系统按command+option+J就可以呼出控制台了,切换到Console标签就能看到如下信息:我们可以看到,baidu还在控制台给我们留了个小彩蛋,我想这个彩蛋也是为我们程序员同学留的吧。让我们先学第一个命令清除控制台来开始吧。清除控制台在chorme下清除控制台的方法有很多:输入console.clear()命令或clear()命令使用快捷键 Control + J 或 Command + K点击控制台左上角第二个图标 ????显示信息的命令console.log(‘技术放肆聊’) // 输出普通信息console.info(‘技术放肆聊’) // 输出提示信息console.warn(‘技术放肆聊’) // 输出警告信息console.error(‘技术放肆聊’) // 输出错误信息console.debug(‘技术放肆聊’) // 输出调试信息console.log、console.info、console.debug这三个命令可以理解为一个,我们只需要用console.log就行,并且chrome还不支持console.debug命令。console.warn命令输出警告信息,信息前带有黄色警告符号。console.error输出错误信息,信息前带有红色错误符号,表示出错,同时会显示错误发生的堆栈。上段代码在chrome控制台输出效果如下:在safari输出效果如下:占位符console上述的命令支持printf的占位符格式,支持的占位符有:字符(%s)、整数(%d或%i)、浮点数(%f)和对象(%o):占位符作用%s字符串%d or %i整数%f浮点数%o可展开的DOM%O列出DOM的属性%c根据提供的css样式格式化字符串//字符(%s)console.log("%s",“技术放肆聊”);//整数(%d或%i)console.log("%d年%d月%d日",2019,1,6); //浮点数(%f)console.log(“PI=%f”,3.1415926);显示效果如下:%o、%O 都是用来输出 Object 对象的,对普通的 Object 对象,两者没区别,但是打印dom节点时就不一样了:%c 占位符是最常用的。使用 %c 占位符时,对应的后面的参数必须是 CSS 语句,用来对输出内容进行 CSS 渲染。常见的输出方式有两种:文字样式、图片输出。信息分组console.group()用于将显示的信息分组,可以把信息进行折叠和展开。console.groupEnd()结束内联分组将对象以树状结构展现console.dir()可以显示一个对象所有的属性和方法.显示某个节点的内容console.dirxml()用来显示网页的某个节点(node)所包含的html/xml代码判断变量是否是真console.assert()用来判断一个表达式或变量是否为真,此方法接受两个参数,第一个参数是表达式,第二个参数是字符串。只有当第一个参数为false,才会输出第二个参数,否则不会有任何结果。计时功能console.time()和console.timeEnd(),用来显示代码的运行时间console.time(“控制台计时器”);for(var i = 0; i < 10000; i++){ for(var j = 0; j < 10000; j++){} }console.timeEnd(“控制台计时器”);性能分析performance profileconsole.profile()和console.proileEnd()用来分析程序各个部分的运行时间,找出瓶颈所在。function All(){ for(var i = 0; i < 10; i++){ funcA(100); } funcB(1000);}function funcA(count){ for(var i = 0; i < count; i++){};}function funcB(count){ for(var i = 0; i < count; i++){};}console.profile(“性能分析器”);All();console.profileEnd();详细的信息在chrome控制台里的"profile"选项里查看console.count()统计代码被执行的次数function myFunction(){ console.count(“myFunction 被执行的次数”);}myFunction(); //myFunction 被执行的次数: 1myFunction(); //myFunction 被执行的次数: 2myFunction(); //myFunction 被执行的次数: 3console.table表格显示方法总结合理的利用console的各种方法,会使我们的调试过程更加愉悦,今天的分享就到这里了,记得右下角点好看呦!技术放肆聊公众号,每日干货,最前沿的技术知识,扫描下方二维码关注: ...

January 11, 2019 · 1 min · jiezi

Html页面中内容禁止选择、复制、右键的实现方法

有的时候,我们不希望自己网页中所呈现的内容不被别有用心盗取,就需要在网页中加上一个禁止复制的功能,而一般的浏览器在禁止复制后还可以用复制为纯文本,并不能完全杜绝此问题,此时就需要我们在页面中完全禁止右键和复制。实现起来其实很简单,只需要在网页中加入以下标签(注意是紧随body后):<body topmargin=“0” oncontextmenu=“return false” ondragstart=“return false” onselectstart =“return false” onselect=“document.selection.empty()” oncopy=“document.selection.empty()” onbeforecopy=“return false” onmouseup=“document.selection.empty()"> 这只是一个最初步的方法,也很容易被人破解,怕网页被别人另存为本地文件,可以再加上以下代码防止别人保存:<noscript> <iframe src=”*.htm"></iframe> </noscript> 最后,有的站长可能只需要一个禁止复制的功能,并不需要禁止右键,则在<body>中加入以下代码即可:<body onmousemove=/HideMenu()/ oncontextmenu=“return false” ondragstart=“return false” onselectstart =“return false” onselect=“document.selection.empty()” oncopy=“document.selection.empty()” onbeforecopy=“return false” onmouseup=“document.selection.empty()">

January 8, 2019 · 1 min · jiezi

解密!如何让别人不由自主的答应你的要求

北京历途科技有限公司是一家专注于人工智能与机器人研发的高新技术企业,经过十几年的技术积累,现已自主研发出专业、高效、安全的高楼外墙清洗机器人,填补了国际外墙清洁市场智能化产品空白。公司以"人人皆创客,完美做产品"为发展理念,打造具有颠覆性的科技产品。元旦小长假已经过去了,小伙伴们的心是不是已经都回到了工作上呢?新的一年新的征程,这是2019年的第一个周,相信在元旦零点的时候好多人都和小编一样,在这个最美好的时间里许下了最真诚的心愿,不管是为自己还是为别人,不管是工作的还是生活的,希望在2019年里都能实现。那么许下的愿望如何才能实现呢?今天,小编给大家推荐一本有“影响力教父”之称的美国作家罗伯特.西奥迪尼的书《影响力》。虽然这本书看着好像都是在讲营销人员的一些技巧和陷阱,但是当我们读完之后就会发现它其实是为我们解释了“为什么有些人极具说服力,而我们总是不由自主地答应他们的要求”这样一个事实。当我们也可以拥有这种让人顺从的能力之后,我们的愿望又何愁不能实现呢?所以说这本书不仅对营销人员重要,对我们每个人也同样重要。如何才能让别人不由自主的顺从自己?小编送你6大心理秘籍。1、互惠中国有一句俗语“吃人家的嘴软,拿人家的手短”。互惠原理其实就和这句俗语不谋而合。如果人家给了我们某种好处,我们在潜意识里就会找机会以同等价值或其喜欢的礼物回报他人的恩惠,这就是互惠原理的影响力。这种负债感会引导我们对此不能无动于衷,否则就会被贴上忘恩负义的标签,因为人们对那些只知索取不知回报的人是由衷厌恶的。所以通常情况下,人们在有负债感时会比没有负债感时更容易答应别人的请求。同理,如果想增加自己的影响力,互惠原理可以为我们增加很多优势。这又正好和另一句俗语不谋而合了“吃亏是福”,也就是平时的工作和生活中,不计回报的多付出、多帮助别人,当你有需要帮助的时候,别人就会义无反顾的回报你之前的恩惠。2、承诺和一致莱昂纳多.达.芬奇说过“在开始的时候拒绝总比在最后拒绝容易得多。”承诺和一致原理认为:一旦我们做出了某个决定,或选择了某种立场,就会面对来自个人和外部的压力迫使我们的言行与它保持一致。为什么我们会有如此大的动力去保持一致呢?因为在我们的潜意识里我们会认为做事前后一致的人就应该受到尊重,而那些前后不一的人则会被人们认为是一种不好的品行。所以如果我们想要增加自己的影响力,就应该要尽量做到让别人保持前后一致。比如在销售东西的时候多问几个让客户可以打消退货念头的问题;比如某个人在做出承诺的时候可以尽量让他有一个书面说明。因为书面声明很容易被公之于众,而且比口头承诺需要付出的努力更多,所以书面说明的影响力更大。3、社会认同社会认同实际上就是从众行为。只不过这个从众行为不是单一的一个人或是一小部分人的从众行为,而是大规模的社会从众行为。社会认同原理认为:我们进行是非判断的标准之一就是看别人是怎么想的,尤其是当我们要决定什么是正确的行为时。因为根据大众的经验去做事,往往可以使我们少犯很多错误。所以它为我们的思考和行动提供了一条捷径。正如为什么广告商总喜欢告诉我们哪种商品的销量最高一样。因为当我们知道这件商品的销量高的时候,我们便会认为既然大部分的人都在买的东西,那么质量一定不错。我们参照别人的行为来决定自己的行为。其实这并不是毫无道理的。因为多数人都去做的事情往往都是正确的事情。所以当我们想让别人认同我们的时候,我们可以尽量做一些在社会上都是被认可的事情,这样别人的顾虑便会减少,社会认同的影响力也会促使他认同我们的想法。4、喜好人们总是愿意答应自己认识和喜爱的人提出的要求,这应该是很自然的事,没有谁会对此感到惊讶。这条原理也常常被一些想要我们答应他们要求的陌生人所使用。他们可能和我们的穿着,说话语气很相似,他们可能和我们有着一样的兴趣爱好。这时我们的喜好心理便起到作用,因为我们总是更容易接受和自己有共同爱好的人,也更喜欢和自己有相似度的人做朋友。这时,我们便可以借此来提高自己的影响力,我们可以通过抓住他人的喜好,或者他喜欢的人的喜好来提高自己的影响力。但是这里有一条原则就是我们不能通过这种方式去做一些违背法律,违背道德的事。5、权威权威所具有的强大力量会影响我们的行为,即使是具有独立思考能力的成年人也会为了服从权威的命令而做出一些让人意想不到的事来。因为我们一出生,便被告知服从权威是应该的,违抗权威则是错误的。这个信息伴随着我们一生,所以当一些有权威的人说出一些话,或者让我们去干一些事的时候,我们便会义无反顾的去服从。所以当我们的实际地位,或者在人们心里的地位有了一定的分量的时候,他们便会义无反顾的去按我们的要求做。从而使我们的影响力得到提升。6、短缺“机会越少,价值就越高” 的短缺原理会对我们的行为造成全面的影响,害怕失去某种东西的想法比希望得到同等价值东西的想法对人们的激励作用更大。近几年的房价不断攀升,除了人为炒高房价的原因之外,也因为有人宣称我国的土地将出现长期短缺。在我们的潜意识里总会认为“物以稀为贵”,正因为这个原因激起了人们购买的欲望。我们总会觉得难以得到的东西比容易得到的东西更好,所以我们便会根据获得东西的难易程度来判断质量的高低。如果我们想让别人同意自己的看法或者答应自己的请求,我们就尽量让别人觉得这个想法是多么的来之不易,是集合了多少人的智慧,是多少人都无法想象到的。当我们把这些都阐述明白的时候,相信没有几个人可以对这样的想法拒之门外。当你读过这本书之后,你一定能有所感悟,运用这6大心理秘籍就能让自己比以前更具影响力。2019年刚刚开端,让我们一起加油,这一年大展宏图,走在创新的路上,点燃灵感的火花,收获成功的喜悦,离梦想更近一步。想获得《影响力》电子版书籍的小伙伴们,关注公众号,回复“影响力”就可收到啦,感谢您的阅读。

January 4, 2019 · 1 min · jiezi

chrome浏览器扩展开发入门

一、环境安装安装nodejs首先需要安装nodejs,可以到官网下载,不过推荐使用nvs来安装nodejs。这里使用的是v11.5.0版本安装yeomannpm -g install yo安装generator-web-extensionnpm install -g generator-web-extension二、项目搭建# 创建项目目录mkdir helloworld && cd helloworld# 生成项目文件yo web-extension然后根据提示完成项目配置上图是询问是否需要UI ActionNo:不需要Browser:创建浏览器级别的UI ActionPage:创建页面级别的UI Action本示例选择Page来进行演示上图是询问是否需要覆盖一些浏览器的默认页面No:不需要Bookmarks Page:覆盖浏览器的书签页面History Page:覆盖浏览器的历史页面Newtab Page:覆盖浏览器的新标签页面本示例选择No上图是询问扩展需要的页面或者脚本Options Page:扩展的设置页面Devtools Page:在devtools里面的页面Content Scripts:在访问页面中运行的脚本Omnibox:给地址栏增加的功能按空格键根据需要进行选择,也可以按a键全部选择,本示例选择来全部上图是询问这个扩展需要的权限,因为这个扩展不只可以运行在chrome,还可以运行在firefox等其他一些浏览器上,有些权限是chrome浏览器不支持的,可以根据需要进行选择,也可以按a全选,然后后面再删除掉不支持的权限。这里为了简单先全选。然后接下来的一路按回车就可以了项目创建完毕三、运行项目编译项目npm run dev chrome可以看到编译生成了很多文件,生成的扩展目录是dist/chrome/用chrome把扩展加载起来打开chrome的扩展管理页面,打开开发者模式,加载已解压的扩展程序,选择刚才生成的dist/chrome/目录可以看到扩展已经加载了,但是有个错误按钮。点击这个按钮查看错误信息前面在选择权限的时候选择了所有权限,但是有些权限是chrome不支持的,因此需要把这些权限删掉扩展需要的页面、脚本、配置等都在app/目录里面,一般只需要修改里面的文件就可以了要修改权限,打开app/manifest.json文件,找到提示的几个权限全部删除掉重新加载一下扩展修改文件重新编译有点慢,多点几次应该就可以了随便打开一个页面,可以看到扩展已经成功运行了四、打包npm run build chrome运行完打包命令之后,会在packages/目录下面生成扩展的压缩包五、其他使用firefox加载扩展先进行编译npm run dev firefox用firefox进行加载firefox需要选中manifest.json文件可以看到扩展已经运行成功了六、附录Chrome扩展及应用开发【干货】Chrome插件(扩展)开发全攻略浏览器扩展generator-web-extension

December 22, 2018 · 1 min · jiezi

人工智能涉足清洁行业,将带来哪些机遇和挑战?

随着人工智能技术的发展,越来越多的行业都在向科技靠拢,AII IN AI将是更多公司的发展战略。去年11月,“第九届中国清洁环卫论坛”在京召开。清洁领域的专业人士和众多企业家都在积极探讨如何改善环境质量,如何加速企业转型升级,如何加速新商业模式在传统产业中的推广和应用。在这些新契机下,将会诞生更多的商业机会。Leatu-Robot据清研智库发布的《2016-2017年度商业清洁行业发展趋势研究报告》数据显示,预计到2021年,大清洁市场规模将达到1,505亿元,其中清洁服务约占67.6%;小清洁市场规模将达到488.2亿元,未来五年复合增长率有望达到9.6%。这无疑是给保洁公司和清洁设备供应商带来了利好消息。目前清洁行业市场正在逐步规范,管理体系日趋完善,对外交流频繁,理念及技术迅速提高。传统的清洁行业想要获得突破性发展,就要从人员服务品质上下功夫,进而逐步实现无人化服务,实现绿色创新发展。未来的竞争是客户服务体验的竞争。前几天有个客户向我抱怨,“在过去的20多年里,清洁设备一直没有质的改变,唯一变的就是国内品牌更多了,进口设备更便宜了”。听了他的话,我很欣慰,现在保洁公司正在期待像我们一样的机器人研发公司,为他们提供代替人工和节省人工的机器人产品,真正的解放劳动力,实现降本增效的目的。随着人工智能和大数据技术逐步渗透到各个行业,未来一定会淘汰更多的重复性工作人员,但同时也会增加更多具有技术含量的蓝领岗位。未来清洁行业的发展离不开人工智能的参与。现在人工智能技术还处在起步阶段,各科技公司的机器人产品研发成本还很高,但随着技术逐步成熟和普及,将会给清洁行业带来翻天覆地的变化。不断为客户提供高品质的专业服务是我们的愿景,诚信经营是核心。希望不久的将来能够看到越来越多的专业服务机器人走上工作岗位,越来越多的企业敢于创新,拥抱变革,共同促进科技发展,社会进步。

December 14, 2018 · 1 min · jiezi