b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

简单的搜索引擎代码 不要被惯性思维骗了,AngularJS真的那么完美?

电脑杂谈  发布时间:2017-12-22 21:01:19  来源:网络整理

简单的搜索引擎代码_搜索引擎使用方法_百度搜索引擎

先不说AngularJS优略,至少大部分前端工作者还是对AngularJS有着狂热的推崇的。因为它使开发变得简单。那么问题来了,为什么很多知名网站都没有用到Angular呢?

下面我从几点说起:

这一点无疑是非常致命的,这造成了很多年轻的创业公司都轻易不敢尝试的一个重要原因。搜索引擎爬虫和社交预览截图无法识别使用JavaScript渲染的页面,并且现有的解决方案非常复杂,非常慢。

事实上,通常一个页面的加载是由五部分组成的(拿java为例):

浏览器像服务器发送Http请求

服务器针对这个请求进行处理得到结果数据,得到Jsp模板,将这些数据通过模板build成浏览器认识的html文本 并发送给浏览器

浏览器解析HTML文本并将页面内容呈现出来

可以看出,最后一步当浏览器拿到html文本时,也就是这个流程结束的时候,我们需要的数据都会呈现出来了。而使用Angular的过程是这样的:

浏览器像前端服务器发送Http请求

前端服务器发送HTML模板到浏览器

浏览器解析HTML并执行js脚本,向业务服务器发送Http请求

服务器针对这个请求进行处理得到结果数据 将结果数据封装成Json格式并发送给浏览器

浏览器解析Json并将数据呈现在页面中

搜索引擎使用方法_简单的搜索引擎代码_百度搜索引擎

这两种流程,一个是把页面build的操作放到了服务器中执行,一个是放到了浏览器中执行。这是最明显的差别,先不说多出来的交互次数,单单从搜索引擎眼里来看的话,它只能看到浏览器拿到的静态内容,它不会去执行你的js代码。

前者搜索引擎看到的是一篇文章,后者搜索引擎看到的是一个个的花括号!这也是为什么Angular渲染的页面会被列入百度‘黑名单’的原因所在。那么如何解决呢?

引用一段话:

有两种方法让爬虫访问你的网站。你可以在你的服务器端运行一个浏览器实例,然后根据JavaScript执行后的DOM生成HTML页面。或者你另外建一套为搜索爬虫准备的HTML静态页面。

前一种方案需要你安装WebKit(也有可能是Xvfb),然后在页面加载完成以后生成页面(你也可以使用缓存,但这增加了更多的复杂性。)这样会增加你的页面加载时间,从而影响你的搜索引擎排名。

后一种方案(制作另外一个服务器端网站),可以满足简单的网站,但是如果你的页面非常多样,这将是一个恶梦。而且如果你的备用网站跟你的主站完全不一致,Google会狠狠地惩罚你的,你的流量会直线下降。

在使用AngularJS后,页面的呈现方式被拆分为了多个过程,这样如果我访问一个页面,而这个页面的内容有比较多的时候,我会明显的感觉到浏览器的渲染过程,我有太多的内容要加载,这个过程是非常糟糕的,尤其是将加载过程放到客户端的时候,它的延迟会非常大。简单的搜索引擎代码

在富JavaScript应用中,页面转换通常是立即发生的,然后从服务器上加载不同的元素。在服务器端应用中,页面没有等客户端把全面数据下载完,就开始呈现数据。

听起来像是客户端的应用好一些,但实际这是个假像。

想像一下,当用户点了一个链接,客户端的JS应用马上出现了一个加载,但这些数据需要加载5秒钟。应用只是第一眼看上去快了,

先不讨论有多少程序员想要在这一个页面上添加功能。你很难要求人家必须通过异步的方式很快的将内容呈现出来,其实页面下面的东西晚一点加载出来人家也是不会关心的。

在服务器端的应用中,如果一个API调用很慢,整个页面的加载就变慢了。简单的搜索引擎代码你无法忽视服务端的慢,因为他会影响到每一个人。但是客户端的慢很容易被忽视。

你可以很轻松的解决掉服务端的慢,因为服务端是可控的,是在你配置的机器上运行的,你可以清楚的知道在这台机器上发生了什么。而且服务端大都是在一个内部的集群网络中,这使他们之间的信息传递非常的快,即使一个动作需要多次的信息传递也可以在瞬间完成。但是把这些传递放在客户端上的话会有诸多因素拖慢它的速度。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-55127-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...