为什么Chrome只打开一个页面,会有4个进程?

文章首发地址

单进程浏览器时代

在了解了进程和线程之后,我们再来一起看下单进程浏览器的架构。顾名思义,单进程浏览器是指浏览器的所有功能模块都是运行在同一个进程里,这些模块包含了网络、插件、JavaScript运行环境、渲染引擎和页面等。其实早在2007年之前,市面上浏览器都是单进程的。单进程浏览器的架构如下图所示:

如此多的功能模块运行在一个进程里,是导致单进程浏览器不稳定、不流畅和不安全的一个主要因素。下面我就来一一分析下出现这些问题的原因。

问题1:不稳定

早期浏览器需要借助于插件来实现诸如Web视频、Web游戏等各种强大的功能,但是插件是最容易出问题的模块,并且还运行在浏览器进程之中,所以一个插件的意外崩溃会引起整个浏览器的崩溃。

除了插件之外,渲染引擎模块也是不稳定的,通常一些复杂的JavaScript代码就有可能引起渲染引擎模块的崩溃。和插件一样,渲染引擎的崩溃也会导致整个浏览器的崩溃。

问题2:不流畅

从上面的“单进程浏览器架构示意图”可以看出,所有页面的渲染模块、JavaScript执行环境以及插件都是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
AutoIt是一个自动化测试工具,它可以通过编写脚本来模拟用户对计算机的操作。要获取Chrome页面元素,可以使用AutoIt的IE和Chrome UDF(用户定义函数)。 使用IE UDF: 1. 首先要确保已经在AutoIt中包含了IE UDF。这可以通过在脚本开头添加以下代码来完成: ``` #include <IE.au3> ``` 2. 使用_IECreate函数来创建一个IE对象。 ``` Local $oIE = _IECreate() ``` 3. 打开Chrome浏览器并导航到指定的URL。 ``` _IENavigate($oIE, "https://www.example.com") ``` 4. 使用_IEGetObjById、_IEGetObjByName或_IEGetObjByTagName等函数,通过元素的id、name或标签名来获取页面上的元素对象。 ``` Local $oElement = _IEGetObjById($oIE, "element_id") ``` 5. 可以使用_ElementGetText、_ElementSetValue等函数来获取或设置元素的值。 ``` Local $sText = _ElementGetText($oElement) ``` 使用Chrome UDF: 1. 首先要确保已经在AutoIt中包含了Chrome UDF。这可以通过在脚本开头添加以下代码来完成: ``` #include <Chrome.au3> ``` 2. 创建一个Chrome进程。 ``` Local $hChrome = _ChromeStartup() ``` 3. 打开Chrome浏览器并导航到指定的URL。 ``` _ChromeNavigate($hChrome, "https://www.example.com") ``` 4. 使用_ChromeFindElement、_ChromeFindElementsByClassName、_ChromeFindElementByName等函数来获取页面上的元素对象。 ``` Local $oElement = _ChromeFindElement($hChrome, $sFindMethod, $sFindValue) ``` 5. 可以使用_ChromeGetValue、_ChromeSetText等函数来获取或设置元素的值。 ``` Local $sText = _ChromeGetValue($oElement) ``` 使用上述方法之一,您可以使用AutoIt来获取Chrome页面上的元素,并对其进行操作。这些函数可以帮助您在自动化测试或其他自动化任务中轻松地与网页元素交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Walter Sun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值