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

写给初学者的Jetpack Compose教程,为什么要学习Compose?

它的工作流程有点像是刷新网页一样。即我们仍然正常地去描述一个控件,但这次要附带上它的状态。...然后当有任何状态需要发生改变时,只需要像刷新网页一样,让整个界面上的所有元素全部刷新一遍,那么自然所有状态都能得到更新了。 如果你是初次听到这种逻辑,一定会感到震惊。什么?...为了更新一个控件的状态,让整个界面上的所有元素全部刷新一遍?那这程序的运行效率不得卡到完全没办法使用? 没错,如果不做任何优化的话,确实会是这个样子,但很明显Google不会让这样的事情发生。...我觉得作为初学者,能使用好Compose就已经很不错了,暂时没有必要去卷它底层的工作原理。等到了这个系列的后期,我可能会再去写一写这方面的内容。...比如用户进入我们App的首页,首页内容的加载是需要一些时间的,通常这个时候我们会先显示一个加载框或者是占位图给用户,等首页内容加载完成之后,再把加载框隐藏掉,将正常的首页呈现给用户。

88020

不编程,手把手教你如何从网络采集海量数据

所以,你可以设计一个程序,能够模拟人在浏览器上的操作,让网站误认为爬虫是正常访问者,它就会把所需的数据乖乖送回来。 爬虫分为两种,一种像百度(黑)那样什么都抓的搜索引擎爬虫。...它能在20分钟内编写大众点评的爬虫(简化版只需3分钟),然后让它运行就好啦、 下面是使用Hawk抓取二手房的视频,建议在wifi环境下观看: ◆ ◆ ◆ 自动将网页导出为Excel 那么,一个页面那么大...回到网页采集这个例子,通过一套有趣的算法,给一个网页的地址,软件就会自动地把它转成Excel! (听不懂吧?听不懂正常, 不要在意这些细节!)...沙漠君把之前的操作保存并分享出来,你只要加载这些文件就能快速获取数据了。 如果你有其他网站的获取需求,可以去找你身边的程序员同学,让他们来帮忙抓数据,或让他们来试试Hawk,看看谁的效率更高。....html 笔者专门为其开发的工程文件已公开在GitHub: https://github.com/ferventdesert/Hawk-Projects 使用时,点击文件,加载工程即可加载。

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

    JavaScrtip之JS最佳实践

    或许,大家都对反复强调"平稳退化"有些不解;让那些不支持或禁用了JavaScript功能的浏览器也能顺利访问你的浏览器真的这么重要吗?...,即使浏览器禁用了JavaScript或者JS失效,这个链接都能正常打开;关于平稳退化这一点,CSS做的很好,即使css加载失败或者被禁用,网页的内容正常显示。...="";这段代码的作用主要是为了让JS代码在htmk文档加载完毕后,在加载,这样var links=document.getElementsByTagName("a"); 就能正常运行 function...绝大多数浏览器都能或多或少地支持JavaScript,绝大多数现代浏览器对DOM的支持都非常不错,但是还是有极少数古老的浏览器可能无法理解,所以这种情况下,即使这类用户使用的是支持JavaScript的浏览器某些脚本也不一定能正常工作...标签内,那么在脚本的下载期间内,浏览器不会下载其他任何文件,所有的其他资源都会等到脚本下载完毕之后才会下载。

    2.1K50

    前端全职岗位依然坚挺,广大同志不必惊慌

    只有敬业的前端开发者才清楚自己到底在干什么,而不会愚蠢地指望依靠一款插件或者扩展程序就奇迹般地让所有人都能获得满意的产品访问体验。...其中每一样(HTML 相对会好一点)都可能引发性能问题、跨浏览器功能冲突,并在难以预料的低配置、低网络质量环境中造成令人头痛的用户访问障碍。...大家都知道,糟糕的性能表现只会让用户愤然“点叉”离去,某些服务无法正常访问甚至可能导致法律和合规性问题,导致我们被送上审判席。...所以我们得跟众多内部向外部合作伙伴携手,了解他们产品无法正常运行的原因。合作对象可能是扩展程序供应商、框架创建团队或者开发小组。...而这么做的原因,就是要让开发人员更便捷、更灵活地用一套框架搞定所有构建工作。 正是由于向全栈开发的转变,导致我们的 Web 体系越来越臃肿,它不仅拉低了客户满意度,也让用户平白付出了不必要的流量。

    16420

    70%以上业务由H5开发,手机QQ Hybrid 的架构如何优化演进?

    这里的流程大概如下,用户从click开始,到launch WebView,WebView去加载CDN上的HTML文件,页面loading起来后才会去获取JSON,为了加速这个过程可能会用到localStroage...确实是有一些App利用持久连接这种通道去加载页面,但在手机QQ比较难行得通,因为手机QQ客户端与sever的持久连接通道是一个非常传统的CS架构,它发送的是socket package,每次需要发送一个请求包...H5快速运营时的稳定性 我们解决了页面加载速度和流量消耗的问题时,也开始考虑H5在快速运营下的稳定性问题。相信前端开发都有遇到过某个页面代码一改,其他功能就不正常了的情况。...采用hybrid开发很有可能native是要给JS页面提供很多API的,客户端小小的改动可能导致JS API受到影响,从而导致全网的H5页面功能不正常。...Quick Test Automation 这是我们内部称作快速自动化的工具。我们会把前端所有的测试用例集写成自动化测试,然后每天都会把全网所有页面所有的测试用例集跑一遍,检查功能是否正常。 ?

    1.8K10

    关于信息无障碍我们能做些什么

    “可能很多人对无障碍最大的误区是,把它当做成了产品的情怀功能,而非基础功能或者Bug去对待。”...我曾经完全不敢相信双目失明的人可以和正常人一样使用手机和电脑,和正常人一样聊天打字,直到有一天我发现了很多知乎优秀的回答是来自世界不同角落的盲人们,我曾经完全不敢相信身体有缺陷的甚至可能都没有机会和我们一样用键盘打字的人可以和正常人一样获得平等的工作机会...Web accessibility 指的是所有的用户在任何情况下都能平等地、方便地、无障碍地获取信息、使用功能,无论是健全人还是残疾人,无论是青年人还是老年人。...可操作 用户能否正常地使用每一个组件的功能?...,让网站成为了多少人的地狱 outlinenone 对outline做出了很好的解释,Web AIM 检查清单也在其第 2.1.1 节中指出,所有页面功能应该都能使用键盘来执行。

    89320

    实战|页面篡改安全事件应急流程

    加载外部js脚本劫持型:js脚本劫持更为隐匿不易察觉,其页面TDK可能不会被篡改,js劫持是通过代码来判断和识别蜘蛛访问的,若正常访问,则给出正常内容,若判断到是搜素引擎来访问,就给出另一个页面,使搜素引擎抓取快照进行改变...网页孤岛页面型:孤岛页面是指网站文件内生成一个与网站主体毫不相干充斥违规内容的一个全新html页面,孤岛页面顾名思义就像一座孤岛在网站上没有外部链接可进行跳转到此页面所以称之为孤岛页面,该篡改类型大多数是黑客通过网站的编辑器上传违规的...(如global.asax),访问所有的aspx文件时都会加载这个global.asax文件,可以达到全局劫持的效果从而劫持流量跳转至违规网站,此类篡改全局流量劫持手法与加载外部js达到流量劫持的手法基本一致...发生安全事件的服务器是否开启日志记录功能或者网络中是否部署有日志审计系统,日志审计系统是否能够正常接收到该服务器推送过来的日志,日志这一点对溯源工作至关重要。...网络中是否有部署防篡改设备,设备防篡改功能是否生效是否对此次事件产生告警,因为还是有挺多单位防篡改设备是购买了的但策略或者功能未开启也有可能的。

    5K10

    如何避免 JavaScript 模块化中的函数未定义陷阱

    例如,像 pageLoad 这样在普通脚本中可以正常工作的函数,转为 ES6 模块后,在浏览器或其他模块中调用时,可能会抛出未定义的错误: Uncaught ReferenceError: pageLoad...注意: 打包工具会将所有模块捆绑在一起,在浏览器中以一个文件的形式加载,避免多次请求,提高加载速度。...,它们可能无法被外部访问,导致事件处理程序无法正常工作。...模块化后,这些外部库可能不会自动成为全局对象的一部分,从而导致依赖于全局变量的代码无法正常工作。...如果管理不当,可能会出现循环依赖或模块加载顺序错误的情况。 解决方案: 确保模块职责单一:一个模块应当只负责一个功能,避免模块之间互相依赖过多。通过将公共功能提取到独立模块中,减少模块之间的耦合。

    12910

    Linux如何判断自己的服务器是否被入侵

    顺便再检查一下系统里有没有空口令帐户: 2、查看一下进程,看看有没有奇怪的进程 重点查看进程: ps –aef | grep inetd inetd是UNIX系统的守护进程,正常的inetd的pid都比较靠前...LINUX系统中的/etc/crontab也是经常被入侵者利用的一个文件,检查该文件的完整性,可以直接cat /etc/crontab,仔细阅读该文件有没有被入侵者利用来做其他的事情。...不替换login等文件而直接使用进程来启动后门的方法有一个缺陷,即系统一旦重新启动,这个进程就被杀死了,所以得让这个后门在系统启动的时候也启动起来。...如果系统被加载了后门模块,但是在模块列表/proc/module里又看不到它们,有可能是使用了hack工具来移除加载的模块,大名鼎鼎的knark工具包就有移除加载模块的工具。...我们先来看看这些缺陷: 1)手工入侵检测只能基于主机,也就是说所有的入侵检测工作只能在操作系统下面完成,这是它固有的缺陷;基本上所有凌驾于操作系统之外的入侵行为统统无法探测得到。

    3.6K70

    谈谈webpack

    resolve.enforceExtension如果配置为true所有导入语句都必须带有后缀,例如开启前import './foo能正常工作,开启后就必须写成import './foo.js'。...Chunk,这个新 Chunk 的名称 name: 'common' }) 按需加载 对于采用单页应用作为前端架构的网站来说,会面临一个网页需要加载的代码量很大的问题,因为许多功能都做到了一个HTML...导致这个问题的根本原因在于一次性的加载所有功能对应的代码,但其实用户每一阶段只可能使用其中一部分功能。...所以解决以上问题的方法就是用户当前需要用什么功能就只加载这个功能对应的代码,也就是所谓的按需加载。 Webpack 内置了强大的分割代码的功能去实现按需加载。...比如: 网页首次加载时只加载main.js文件,网页会展示一个按钮main.js文件中只包含监听按钮事件和加载按需加载的代码。

    83530

    Linux如何判断自己的服务器是否被入侵

    顺便再检查一下系统里有没有空口令帐户: 2、查看一下进程,看看有没有奇怪的进程 重点查看进程: ps –aef | grep inetd inetd是UNIX系统的守护进程,正常的inetd的pid都比较靠前...LINUX系统中的/etc/crontab也是经常被入侵者利用的一个文件,检查该文件的完整性,可以直接cat /etc/crontab,仔细阅读该文件有没有被入侵者利用来做其他的事情。...不替换login等文件而直接使用进程来启动后门的方法有一个缺陷,即系统一旦重新启动,这个进程就被杀死了,所以得让这个后门在系统启动的时候也启动起来。...如果系统被加载了后门模块,但是在模块列表/proc/module里又看不到它们,有可能是使用了hack工具来移除加载的模块,大名鼎鼎的knark工具包就有移除加载模块的工具。...我们先来看看这些缺陷: 1)手工入侵检测只能基于主机,也就是说所有的入侵检测工作只能在操作系统下面完成,这是它固有的缺陷;基本上所有凌驾于操作系统之外的入侵行为统统无法探测得到。

    3K41

    HTTP 新增的 103 状态码,这次终于派上用场了!

    说到 HTTP 的 103 状态码,你可能很早就听说过了,但是你不一定真的理解了它。 这很正常,这个状态码早在 2017 年就被提出来了,但是支持它的服务器和浏览器真的很少。...资源加载的性能问题 随着时间的推移,网站变得越来越复杂。一些大型网站的服务器可能需要执行很多重要的工作(例如,访问数据库或访问源服务器的 CDN)来为请求的页面生成 HTML。...我们来看看抖音 Web 站的资源加载:浏览器先要等待前面两个 HTML 的大约 800 ms 的时间才能去加载后面的 JS 、CSS 等资源文件。...有没有办法在等待 HTML 响应的同时就去提前把重要的静态资源文件也加载回来呢?...利用 HTTP 103 状态码,就可以让服务器在服务器处理主资源的同时向浏览器发送一些关键子资源(JavaScript、CSS 或字体文件)或页面可能使用的其他来源的提示。

    78610

    转 入门Webpack,看这篇就够了

    Grunt和Gulp的工作流程 Webpack的工作方式是:把你的项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders...在开发单页应用时非常有用,它依赖于HTML5 history API,如果设置为true,所有的跳转将指向index.html 把这些命令加到webpack的配置文件中,现在的配置文件webpack.config.js...,一次处理一个,插件并不直接操作单个文件,它直接对整个构建过程其作用。 Webpack有很多内置插件,同时也有很多第三方插件,可以让我们完成更加丰富的功能。...整理下我们的思路,具体实现方法如下 Babel和webpack是独立的工具 二者可以一起工作 二者都可以通过插件拓展功能 HMR是一个webpack插件,它让你能浏览器中实时观察模块修改后的效果,但是如果你想让它工作...,需要对模块进行额外的配额; Babel有一个叫做react-transform-hrm的插件,可以在不对React模块进行额外的配置的前提下让HMR正常工作; 还是继续上例来实际看看如何配置 const

    1.7K101

    〖免杀〗.net程序一键免杀Win10 20H2 Defender「建议收藏」

    微软系统的API很多,是微软写的没错,但又不是一个人自己写的,就算是一个人自己写的,功能那么多,他也根本记不起,用到自己的东西也要查阅文档,就像我用Ladon有时也要查阅文档,这很正常,因为我写过的工具或功能太多...举个简单的例子,你在某公司工作,有些员工可能你压根都不认识,更别说和公司所有程序员了解他们所写过的代码,微软的操作系统有多少人来写,defender这部门又只有多少人,他们怎么可能把所有函数都了解,就算...任何一个杀软能查杀一个全球大量人使用的工具这是应该也是必须的很常规的考验,杀了不代表这杀软就强了,但是不杀它一定是垃圾。如CS,因为全球大量人使用,任何一个杀软杀它都说明不了什么。...GO异或加密免杀 使用GO免杀CS的shellcode,生成的dll上线成功执行CMD命令正常,但执行dumplsass等相关高危功能或加载Ladon时被杀,CS直接下线,甚至加载一个只输出hello...小结 大家也可以按照该方法,免杀其它.net写的工具,像Ladon这样一百多个功能的程序都能免杀,相信大部份.net写的程序,应该都能免杀,除非是被Defender重点针对的工具,如mimikat。

    2K10

    2024年java面试准备--spring篇

    反射原理以及使用场景 Java反射: 是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且都能够调用它的任意一个方法; 反射原理: Java的反射机制的实现要借助于4个类:class,...IoC让相互协作的组件保持松散的耦合,而AOP编程允许你把遍布于应用各层的功能分离出来形成可重用的功能组件。 Spring的优缺点是什么? 优点 ①....观察者模式:定义对象键一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知被自动更新,如Spring中listener的实现–ApplicationListener。...均回滚 正常 异常 均回滚 正常 异常,并try-catch异常 不回滚 (2)、 requiresNew 不管客户端有没有事务服务器段都新起一个事务 如果客户端有事务就将事务挂起 子事务 主事务...、业务服务层、数据持久层、依赖注入注解、获取配置文件注解 从配置文件中获取需要扫描的包路径,获取到当前路径下的文件信息及文件夹信息,我们将当前路径下所有以.class结尾的文件添加到一个Set集合中进行存储

    54750

    ViteConf 2022回顾:Vite是如何诞生的?

    但当时 JavaScript 并没有模块的概念,所有的文件都共享在全局作用域中,这时可能会使用 IIFE(立即执行函数)来分离作用域,不过这样仍需要通过全局作用域来进行通信,比如通过 window 对象...于是在2015年,尤雨溪做了 vue-cli,这是一个基于 Webpack 构建的 Vue 脚手架。vue-cli 做了很多如今已经成为标准的工作,例如预配置,即大部分通用功能可以开箱即用。...原生 ESM 提供了 fetch 来进行 HTTP 请求,我们可以让 dev server 无需任何转化即可正常运行,并且这个 dev server 将会非常轻量,就像静态文件服务器一样。...所以,在 Vue 的生态中,提供了一个静态站点生成器:VitePress,它是一个基于 Vite 的高级别应用。它允许通过路由去编写 HTML 文件,并且可以在其中引入 Vue 组件。...vue-cli,目的是让每一个框架都能使用; 为框架作者提供一个共享工具层。

    67820

    【项目测试】博客系统—Selenium自动化测试、编写测试用例

    ,它提供了一系列用于处理输入输出(I/O)操作的实用类和方法,简化了 Java 中文件、流、字符串等的操作。...类型,在调用截图方法 注:不是所有的 WebDriver 实现类都能直接转换为 TakesScreenshot 类型,不过常见的浏览器驱动(如 ChromeDriver、FirefoxDriver 等...)都实现了这个接口,所以这种转换通常是ok的 第二步:OutputType是 Selenium 提供的一个枚举类,定义了截图的输出类型是FILE文件!...那看我们登陆成功后跳转的页面里的元素有没有加载出来嘿嘿~~ 注:这里我们的屏幕截图方法传入的字符串参数,是当前类的名字。...还有一个很ex的点:你去切换句柄到弹窗的时候,可能代码执行速度太快,当前弹窗元素还没加载出来呢,这就会报错 (1)错误展示 我们把这个显示等待注掉,就g了——NoAlertPresentException

    13210

    你真的了解 Web 缓存体系吗?

    当遇到加载JS会阻塞,你会看到一个页面一直在转圈,JS阻塞,因为JS有可能会修改页面的道路数,所以加载JS的时候要等JS下载完毕,并执行完毕,才能继续往下加载。...是因为浏览器访问一个Web站点,浏览器是有并发限制的,不可能单进程跑,像火狐这种一般不同版本可能6—8个并发,但是并发是针对的域名,所以他搞了很多域名,这样就可以让页面打开更快。...如何优化 当然还有CSS背景偏移,很多小图标,我其实只是一个图片,我下载下来再通过背景偏移技术,再把它展示在页面上。还有比如懒加载,为了加快首屏时间,我使用懒加载。...每次你问我这个值有没有发生改变,但这个算法每个浏览器都不一样,如果你不好理解,可以理解为做了HTML5给客户端,每次拿HTML5来问我对不对,但是它其实不是做HTML5加密出来的。...其实浏览器很聪明,它还有一个Cache—Control,它会算一个本地头部时间,告诉你文件生存周期多久,不管你客户端时间对不对,你都能正确使用过期时间。 4.3 你真的会刷新吗?

    1.3K10

    维护了这么久的服务器,你真的认识 Web 缓存体系?

    当遇到加载JS会阻塞,你会看到一个页面一直在转圈,JS阻塞,因为JS有可能会修改页面的道路数,所以加载JS的时候要等JS下载完毕,并执行完毕,才能继续往下加载。...是因为浏览器访问一个Web站点,浏览器是有并发限制的,不可能单进程跑,像火狐这种一般不同版本可能6—8个并发,但是并发是针对的域名,所以他搞了很多域名,这样就可以让页面打开更快。...如何优化 当然还有CSS背景偏移,很多小图标,我其实只是一个图片,我下载下来再通过背景偏移技术,再把它展示在页面上。还有比如懒加载,为了加快首屏时间,我使用懒加载。...每次你问我这个值有没有发生改变,但这个算法每个浏览器都不一样,如果你不好理解,可以理解为做了HTML5给客户端,每次拿HTML5来问我对不对,但是它其实不是做HTML5加密出来的。...其实浏览器很聪明,它还有一个Cache—Control,它会算一个本地头部时间,告诉你文件生存周期多久,不管你客户端时间对不对,你都能正确使用过期时间。 4.3 你真的会刷新吗? ?

    1.7K80

    这年头,程序员开始卷AI编程了?

    比如,一些公司的招聘中可能要求面试者掌握多种编程语言比如Golang和Java,但如果我们其中一种的话,在以往我们基本难以胜任这份工作。...为了让大家更好地了解腾讯云 AI 代码助手,小灰使用云端编辑器给大家做个功能演示。...到此,通过「腾讯云 AI 代码助手」,我们使用其代码补全功能即可快速实现一个读取文件的函数。 二、 代码生成 接着我们用 python实现一个「O(1) 时间插入、删除和获取随机元素」功能。...接着我们全选 `index.html` 文件所有内容,在「腾讯云 AI 代码助手对话」中输入【帮我实现一个登录页面】,等待 AI 生成代码后,直接写入当前文件内,再右侧预览窗口点击刷新。...以上就是给大家展示的内容,不知道各位看完有没有觉得很震撼,反正小灰是觉得这个是很夸张的一个结果了,不管是前端和后端的工作,AI 目前已经具备了一定的能力去胜任这样的工作了。

    14510
    领券