分析
从上图来看,虽然有这几种方式,甚至还有一些方式没有列出来,但其根本可以用一句话来概括:根据规则来过滤URL。其原理可以简单概括如下:
过滤广告很简单,就是判断页面是否有广告,如果有广告,则不加载这条广告。具体就要从网页加载原理说起了。我们知道网页其实就是html+css+js,请求网页的时候,会先根据url来下载html文件,并进行解析,解析到需要加载的css和js以及图片视频等资源的时候,就会去下载这些文件。也就是说,每一个文件的下载都对应一条url,打开一个网页,可能需要下载数十上百个文件,也就有这么多的url。所以我们可以针对每一条url进行判断,看其到底是不是会产生广告的url,或者就是广告的资源。
1. 代理方式:
1.1 服务器方式:对于一个应用如果数据来源于指定的服务器,只需要我们在指定的服务器里控制好资源请求与分发即可,那么对于移动应用来说去广告的效率更好,因为资源的过滤运算均在服务器,而不在移动端,相对来说更可维护,但这样的对服务器的任务又是一个问题了。
1.2 AdBlockplus: 世界上的网站何止千万,而这些网站的内容又随时都有可能发生变化。因此,AdBlockPlus想出了一个解决方案:
通过社区来维护一个规则表,然后根据这个规则表来过滤url,同时让用