HTML、CSS、JavaScript、浏览器大战的前世今生

HTML、CSS、Javascript 的历史

1980年,欧洲核子研究中心(CERN)工作的物理学家蒂姆·伯纳斯 – 李(Tim Berners-Lee)提出了原型INQUIRE,这是一个供欧洲核子研究中心研究人员使用和共享文件的系统。 1989年,伯纳斯 – 李写了一份备忘录,提出了一个基于互联网的超文本系统。Berners-Lee在1990年对HTML进行了描述,并编写了浏览器和服务器。在1990年的个人笔记中,他列出了“一些能使用超文本的领域”并首先放入了百科全书。

第一个公开提供的HTML描述是1991年末Tim Berners-Lee在互联网上提到的一个名为“HTML标签”的文档。除了超链接标记,它们受到SGML 风格的强烈影响,SGML是CERN内部基于标准通用标记语言的文档格式。1993年中期出版了第一个HTML规范提案。在HTML和HTML +草案于1994年初到期之后,IETF(Internet Engineering Task Force,互联网工程任务组)创建了一个HTML工作组,该工作组在1995年完成了“HTML 2.0”,这是第一个HTML规范,旨在作为未来实现应该基于的标准。

随着HTML的发展,它开始涵盖更广泛的风格功能,以满足Web开发人员的需求。这种演变使设计师能够以更复杂的HTML为代价更好地控制网站外观。 由Tim Berners-Lee开发的浏览器/编辑器具有硬编码到程序中的样式表。但样式表不能链接到网络上的文件。欧洲核子研究中心的Robert Cailliau希望将结构与演示文稿分开,以便不同的样式表可以描述不同的打印,基于屏幕的演示文稿和编辑的演示文稿。改进网络演示功能是网络社区中许多人感兴趣的主题,在给出的提案中,有两个对CSS成为特别有影响力:级联HTML样式表和基于流的样式表提案(SSP)。 Håkon Wium Lie (CSS 的发明者,Tim Berners-Lee 的同事)与Yves Lafon合作,在Arena浏览器中实现CSS。Bert Bos在Argo浏览器中实施了自己的SSP提案。后来,Lie和Bos共同开发了CSS标准。

Lie的提议于1994年在伊利诺伊州芝加哥举行的“Mosaic and the Web”会议(后来称为WWW2)上提出,并于1995年再次与Bert Bos一同提出。大约在这个时候,W3C已经建立,并且对CSS的开发感兴趣。它组织了一个由Steven Pemberton主持的研讨会。这导致W3C将CSS工作添加到HTML编辑审查委员会(ERB)的可交付成果中。到1996年底,CSS level1于12月官方发布。

1993年,伊利诺伊大学的国家超级计算应用中心(NCSA)发布了NCSA Mosaic,这是第一个流行的图形Web浏览器。 1994年,一家名为Mosaic Communications的公司在加利福尼亚州成立,并聘请了许多NCSA Mosaic原始开发团队的工程师创建Mosaic Netscape。该公司浏览器的内部代号为Mozilla,代表“Mosaic杀手”,因为该公司的目标是取代NCSA Mosaic成为世界第一的网络浏览器。第一个版本的Web浏览器Mosaic Netscape 0.9于1994年底发布。在四个月内,它已经占据了浏览器市场的四分之三,并成为20世纪90年代互联网的主要浏览器。为避免NCSA的商标所有权问题,该浏览器于同年更名为Netscape Navigator,该公司也改名为Netscape Communications。 Netscape公司意识到Web需要变得更加动态。该公司的创始人Marc Andreessen认为HTML需要一种“胶水语言”,Web设计人员和兼职程序员可以轻松地使用它来组装图像和插件等组件,其中代码可以直接在Web页面中编写标记。

1995年,Netscape Communications招聘Brendan Eich,目标是将Scheme编程语言嵌入到Netscape Navigator中。在他开始之前,Netscape Communications与Sun Microsystems合作,在Netscape Navigator Sun中使用更为静态的编程语言Java,以便与微软竞争用户采用Web技术和平台。然后Netscape Communications决定他们想要创建的脚本语言将补充Java,并且应该有类似的语法,排除采用其他语言,如Perl,Python,TCL或Scheme。Eich于1995年5月花了10天时间实现了一种语言Mocha。公司觉得这么名字不够霸气,在1995年9月首次发布Netscape Navigator 2.0测试版时正式改为称为LiveScript。当时 Java 作为后端语言很火,在12月份部署在Netscape Navigator 2.0 beta 3中时,LiveScript它被重命名为JavaScript。这样会让普通人误以为JavaScript和 Java 是近亲。幻想一下,现在有 Node.js,假设有人出个 NodeScript,不明真相的吃瓜群众肯定以为是下一代 Node。

浏览器大战

技术和产品的诞生是鸡生蛋蛋生鸡的关系,讲 HTML、CSS、JavaScript 的起源不得不提到浏览器大战。

到1992年底,已经出现了不少浏览器,这些浏览器大都是基于libwww库,尽管这些浏览器往往是简单的HTML查看器,依靠外部帮助应用程序来查看多媒体内容,但它们为浏览器和平台上的用户提供了选择。

1993年更多浏览器发布,其中最有影响力的是前面提到的Mosaic,它是 NCSA开发的多平台图形界面浏览器。到1994年10月,Mosaic 成为浏览器人气王。

Mosaic的其中一位开发者Marc Andreessen,作为联合创始人创立了Mosaic Communications 公司,开发了一款名为Mosaic Netscape的新浏览器。

按照当时的说法,互联网有两个时代 :Mosaic之前和Mosaic之后。Tim Berners-Lee的Web协议提供端到端的链接,Marc Andreesen的 Mosaic浏览器提供舒适的图形界面。事实证明这两种组合产生的效果是爆炸性的。仅仅24个月,互联网从从未知到无处不在。

后来为解决NCSA的法律问题,该公司更名为Netscape Communications 公司,产品也更名为Netscape Navigator浏览器。 Netscape浏览器改进了Mosaic的可用性和可靠性,并能够在加载时显示页面。到1995年,由于它可以免费用于非商业用途,浏览器主导了新兴的万维网。

第一次浏览器大战——棋逢对手

到1995年中期,万维网在大众文化和大众媒体中受到了极大的关注。 Netscape Navigator变成使用最广泛的网络浏览器。但是狼来了。

微软获得 Mosaic 的授权,创建Internet Explorer 1.0,它已作为Microsoft Windows 95 的一部分于8月打包发布。而此时微软已经成为最受欢迎的桌面系统。

三个月后,Internet Explorer 2.0以免费下载的形式发布。与Netscape Navigator不同,它可供所有Windows用户免费使用,甚至是商业公司。微软的行为也迫使其他浏览器公司只能跟随并免费提供他们的浏览器。

1997年10月,Internet Explorer 4.0发布。Internet Explorer 4改变了浏览器之战的潮流。它被集成到Microsoft Windows 系统中,导致份额暴涨。

这时候,第一次真正出现了浏览器兼容的问题。在不同版本中,Web设计人员通常会显示“在Netscape中查看最佳”或“在Internet Explorer中查看最佳”徽标。这些图像通常标识特定的浏览器版本,并且通常链接到可以从其下载所述浏览器的源。然而,大多数主流网站都将Netscape或IE中的一个指定为首选浏览器,同时尝试支持最小功能。开发者和用户不干了,标准统一迫在眉睫。

大战的解决显而易见,微软大获全胜,

第二次浏览器大战——新秀崛起

Navigator在第一次浏览器大战的中间阶段就预测了大战的结局。于是在公司开始衰落之初,Netscape开源了他们的浏览器代码,后来委托给新成立的非营利性Mozilla基金会 ——一个主要由社区驱动的项目,给 Netscape 保留香火。之后 Netscape 作为两个分支来开发,一个是 Netscape,一个是Firefox。开发持续了几年,但人气一直很弱,直到后来Mozilla Firefox 1.0的发布(2004年11月)。之后Firefox开始慢慢在浏览器市场中获得越来越大的份额,直到2010年达到顶峰。

Opera在浏览器大战中一直是一个小玩家,该浏览器引入标签式浏览和鼠标手势等创新功能,以及轻量级但功能丰富而著称。 2006年6月,Opera Software发布了Opera 9,之后发布一款口碑还不错的移动浏览器Opera Mini。

微软与2001年发布了 IE6,一直流行了10年。2006年10月IE7发布,内置于Windows Vista系统中。2009年发布 IE8,内置在 windows 8系统中。2011年发布IE9,没内置系统,IE9只支持Windows Vista SP2及Windows 7。15年发布Edge,成为 windows10的默认浏览器。

2006,Mozilla发布了Mozilla Firefox 2.0。2008发布了Firefox 3.0。 Firefox 3.5于2009年6月30日推出。

Apple在2002年创建了开源KHTML和KJS布局以及JavaScript引擎的分支。最终的布局引擎被称为WebKit,它被整合到最初随Mac OS X v10.3一起提供的Safari浏览器中。

谷歌于2008年12月发布了适用于Microsoft Windows的Chrome浏览器,使用与Safari相同的WebKit渲染引擎和一个名为V8的更快的JavaScript引擎。不久之后,以Chromium的名义发布了Windows,OS X和Linux平台的开源版本。

HTML、CSS、JavaScript 版本

HTML 版本

  • 1991年10月
    • HTML列出了18个HTML标签,在公开场合被提到的。
  • 1995年11月24日
    • HTML 2.0 发布,增加了如基于表单的文件上传等功能
  • 1995年4月
    • HTML 3.0 被提议作为IETF的标准,但失败了。原因:太过复杂、浏览器大战
  • 1997年1月14日
    • HTML 3.2 作为W3C推荐标准发布,这是由W3C独家开发和标准化的第一个版本
  • 1997年12月18日
    • HTML 4.0 作为W3C推荐标准发布
  • 1999年12月24日
    • HTML 4.01 作为W3C推荐标准发布,在HTML5之前大家学的 HTML 都是这个版本
  • 2014年10月28日
    • HTML5 (2016年HTML5.1, 2017年HTML5.2) 作为W3C推荐标准发布

Javascript 的发展

  1. 1994年12月, Netscape 公司发布了Navigator1.0版,市场份额一举超过90%
  2. 1995年12月4日,Netscape公司与Sun公司联合发布了JavaScript语言
  3. 1996年3月,Navigator 2.0浏览器正式内置了JavaScript脚本语言
  4. 1996年11月,Netscape公司决定将JavaScript提交给国际标准化组织ECMA
  5. 1997年7月,ECMA组织发布ECMA-262的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript
  6. 2011年6月,ECMAscript 5.1版发布,并且成为ISO国际标准
  7. 2015年6月,ECMAScript 6正式发布,并且更名为 ECMAScript 2015

CSS 的发展

  1. 1996年 CSS level1发布
  2. 1998年 CSS level2发布
  3. 1999年 CSS level3提起草案

image.png

前端的发展

~ 1998 原始社会

大多数网站都基于完整的HTML页面。 每个用户操作都要求从服务器加载完整的新页面。 用户体验反映出这个过程效率低下:所有页面内容都消失了,然后出现了新页面。 每次浏览器因部分更改而重新加载页面时,即使只有部分信息发生了变化,也必须重新发送所有内容。 这给服务器带来了额外的负担,并使带宽成为性能的限制因素。

1998~2004 奴隶制社会

各种浏览器纷争、各种不兼容。夹杂少量创新,如一些浏览器对异步加载数据各种不规范实现(Microsoft Outlook Web App)。

2004~2005 Ajax 问世

以 Gmail 和 Google Map 为标志的大量使用异步数据渲染的技术的产品问世。2005年Jesse James Garrett 在一篇文章中正式提到 Ajax 这个词。2006年 W3C 发布XMLHttpRequest的标准化草案。

封建社会 2006~2009(2012)

以 jQuery 的出现为标准,进入 jQuery 一统天下的时代。同时期出现Prototype、YUI、Dojo 、Extjs等占山为王,SPA 的产品越来越多出现在视野。

在这个阶段不得不提的工具是:网页开发三剑客

2009年 Node.js 诞生

创始人为Ryan Dahl,前端开始涉足后端。Node 生态衍生出各种框架和工具集。

2009(2012) ~ 2012 工业社会

  1. UI 框架如 Bootstrap(2011)
  2. CommonJS 规范到 AMD 规范(Requere.js、Sea.js)
  3. SPA 的流行: Backbone.js
  4. 移动端的流行: Zepto.js
  5. 前端工程化工具的出现: Grunt(2012)、Gulp(2013)

2012~现在

  1. 2010年, Google 发布Angular.js
  2. 2012年, Webpack 发布
  3. 2013年,Facebook发布UI框架库React.js
  4. 2015年 Facebook发布了React Native项目,将React框架移植到了手机端,可以用来开发移动端 App
  5. 2014年 尤雨溪发布了Vue.js
  6. more…

参考

本文作者:若愚,转载请联系作者

138 thoughts on “HTML、CSS、JavaScript、浏览器大战的前世今生”

  1. Hmm it appears like your website ate my first comment (it was super long) so I guess I’ll just sum it up what I submitted and say, I’m thoroughly enjoying your blog. I as well am an aspiring blog writer but I’m still new to the whole thing. Do you have any points for inexperienced blog writers? I’d really appreciate it.|

  2. Hi, Neat post. There’s an issue along with your web site in internet explorer, could test this? IE nonetheless is the market leader and a big part of other people will leave out your great writing due to this problem.|

  3. I simply couldn’t go away your website prior to suggesting that I extremely loved the usual info an individual provide on your visitors? Is gonna be again regularly to investigate cross-check new posts|

  4. Hello there I am so grateful I found your website, I really found you by accident, while I was searching on Askjeeve for something else, Anyhow I am here now and would just like to say thanks for a remarkable post and a all round exciting blog (I also love the theme/design), I don’t have time to browse it all at the minute but I have bookmarked it and also added your RSS feeds, so when I have time I will be back to read a lot more, Please do keep up the great b.|

  5. This is a great tip especially to those fresh to the blogosphere. Short but very accurate info… Thank you for sharing this one. A must read article!|

  6. Thanks for another excellent article. The place else may just anyone get that type of information in such an ideal means of writing? I have a presentation next week, and I’m at the search for such info.|

  7. You are so cool! I do not think I’ve truly read through a single thing like this before. So great to find another person with some unique thoughts on this subject. Really.. thanks for starting this up. This site is one thing that’s needed on the internet, someone with some originality!|

  8. Thanks for a marvelous posting! I truly enjoyed reading it, you may be a great author.I will always bookmark your blog and definitely will come back sometime soon. I want to encourage you to continue your great writing, have a nice afternoon!|

  9. Hi, I do believe this is an excellent website. I stumbledupon it 😉 I’m going to come back yet again since I bookmarked it. Money and freedom is the greatest way to change, may you be rich and continue to guide other people.|

  10. Hello there, You have done an incredible job. I will definitely digg it and personally suggest to my friends. I’m confident they’ll be benefited from this website.|

  11. Have you ever considered about adding a little bit more than just your articles? I mean, what you say is valuable and everything. However imagine if you added some great images or video clips to give your posts more, “pop”! Your content is excellent but with pics and clips, this site could definitely be one of the most beneficial in its field. Very good blog!|

  12. Very good website you have here but I was wanting to know if you knew of any discussion boards that cover the same topics talked about here? I’d really like to be a part of group where I can get opinions from other experienced people that share the same interest. If you have any suggestions, please let me know. Thank you!|

  13. It’s the best time to make some plans for the future and it is time to be happy. I’ve read this post and if I could I want to suggest you some interesting things or advice. Perhaps you can write next articles referring to this article. I desire to read even more things about it!|

  14. You are so awesome! I do not believe I’ve truly read through anything like this before. So good to discover someone with some genuine thoughts on this subject. Seriously.. thank you for starting this up. This website is something that is needed on the web, someone with some originality!|

  15. I like the helpful information you provide in your articles. I will bookmark your weblog and check again here regularly. I am quite certain I will learn a lot of new stuff right here! Good luck for the next!|

  16. Having read this I believed it was really enlightening.

    I appreciate you taking the time and energy to put
    this content together. I once again find myself personally spending a lot of time both reading and posting comments.
    But so what, it was still worth it!

  17. Hey I know this is off topic but I was wondering if you knew of any widgets I could add to my blog that automatically tweet my newest twitter updates. I’ve been looking for a plug-in like this for quite some time and was hoping maybe you would have some experience with something like this. Please let me know if you run into anything. I truly enjoy reading your blog and I look forward to your new updates.|

  18. I really like your blog.. very nice colors & theme. Did you make this website yourself or did you hire someone to do it for you? Plz respond as I’m looking to design my own blog and would like to know where u got this from. cheers|

  19. Howdy! I realize this is kind of off-topic however I had to ask.
    Does managing a well-established website such as yours
    require a massive amount work? I am brand new to operating
    a blog but I do write in my diary on a daily basis.
    I’d like to start a blog so I can easily share my personal experience and thoughts online.
    Please let me know if you have any recommendations or tips for
    brand new aspiring blog owners. Thankyou!

  20. Good day! This is kind of off topic but I need some help from an established blog. Is it very hard to set up your own blog? I’m not very techincal but I can figure things out pretty quick. I’m thinking about making my own but I’m not sure where to begin. Do you have any points or suggestions? Cheers|

  21. It’s a shame you don’t have a donate button! I’d most certainly donate
    to this fantastic blog! I guess for now i’ll settle for bookmarking and adding your RSS feed to my
    Google account. I look forward to brand new updates and will share this website with my Facebook group.
    Chat soon!

  22. Hey there! I know this is kinda off topic nevertheless I’d figured I’d ask. Would you be interested in trading links or maybe guest authoring a blog post or vice-versa? My blog addresses a lot of the same subjects as yours and I feel we could greatly benefit from each other. If you happen to be interested feel free to shoot me an email. I look forward to hearing from you! Wonderful blog by the way!|

  23. Hello are using WordPress for your site platform? I’m new to the blog world but I’m trying to get started and create my own. Do you require any coding knowledge to make your own blog? Any help would be greatly appreciated!|

  24. It’s difficult to find educated people for this subject, but you seem like you know what you’re talking about! Thanks|

  25. Hmm it looks like your blog ate my first comment (it was extremely long) so I guess I’ll just sum it up what I had written and say, I’m thoroughly enjoying your blog. I as well am an aspiring blog blogger but I’m still new to everything. Do you have any points for beginner blog writers? I’d definitely appreciate it.|

  26. Wow that was strange. I just wrote an really long comment but after I clicked submit my comment didn’t show up. Grrrr… well I’m not writing all that over again. Anyway, just wanted to say great blog!|

  27. I think that is one of the so much significant info for me. And i’m glad reading your article. But want to commentary on some common things, The web site taste is ideal, the articles is really excellent : D. Good process, cheers|

  28. I like the helpful information you provide in your articles. I will bookmark your weblog and check again here regularly. I’m quite certain I will learn lots of new stuff right here! Good luck for the next!|

  29. I do not even know how I ended up right here, however I believed this publish used to be good. I don’t know who you’re however certainly you’re going to a well-known blogger should you are not already. Cheers!|

  30. Hello, There’s no doubt that your site might be having web browser compatibility issues. When I take a look at your website in Safari, it looks fine however, when opening in Internet Explorer, it has some overlapping issues. I just wanted to provide you with a quick heads up! Aside from that, excellent blog!|

  31. I’m really impressed with your writing skills and also with the layout on your blog. Is this a paid theme or did you modify it yourself? Either way keep up the nice quality writing, it’s rare to see a great blog like this one today.|

  32. You actually make it seem so easy with your presentation but I find this topic
    to be actually something that I think I would never understand.

    It seems too complicated and extremely broad for me.
    I am looking forward for your next post, I will try
    to get the hang of it!

  33. whoah this blog is excellent i love reading your posts.

    Keep up the good work! You already know, many people are looking around for this info,
    you could aid them greatly.

  34. I do not even know how I ended up here, but I thought this post was great. I don’t know who you are but certainly you’re going to a famous blogger if you are not already 😉 Cheers!|

  35. Wow that was unusual. I just wrote an extremely long comment but after I clicked submit my comment
    didn’t show up. Grrrr… well I’m not writing all that over again. Anyhow, just wanted to say
    excellent blog!

  36. That is very attention-grabbing, You are
    a very professional blogger. I have joined your feed and sit up for in quest of extra of your magnificent post.
    Also, I’ve shared your web site in my social networks

  37. I’m really loving the theme/design of your web site.

    Do you ever run into any browser compatibility problems?
    A number of my blog audience have complained about my site not working correctly
    in Explorer but looks great in Opera. Do you have any advice to help fix this problem?

  38. Its like you read my mind! You seem to know so much about this, like you wrote the book in it or something. I think that you could do with a few pics to drive the message home a little bit, but instead of that, this is magnificent blog. A great read. I will definitely be back.|

  39. I know this if off topic but I’m looking into starting my own blog and was curious what all is needed to get setup? I’m assuming having a blog like yours would cost a pretty penny? I’m not very web savvy so I’m not 100 sure. Any tips or advice would be greatly appreciated. Thanks|

  40. Hey there would you mind letting me know which hosting company you’re utilizing? I’ve loaded your blog in 3 different web browsers and I must say this blog loads a lot faster then most. Can you suggest a good internet hosting provider at a fair price? Kudos, I appreciate it!|

  41. I will immediately snatch your rss feed as I can’t find your e-mail subscription hyperlink or e-newsletter service. Do you’ve any? Kindly allow me know so that I could subscribe. Thanks.|

  42. I have been surfing on-line more than three hours these days, but I by no means found any fascinating article like yours. It’s pretty worth enough for me. In my view, if all webmasters and bloggers made good content material as you did, the internet will likely be much more helpful than ever before.|

  43. Excellent beat ! I would like to apprentice while you amend your site, how could i subscribe for a blog
    website? The account aided me a acceptable deal. I had been a little bit
    acquainted of this your broadcast offered bright clear idea

  44. It’s perfect time to make some plans for the future and it is time to be happy. I’ve read this post and if I could I wish to suggest you some interesting things or tips. Perhaps you could write next articles referring to this article. I desire to read more things about it!|

  45. I’ll immediately clutch your rss feed as I can not find your e-mail subscription hyperlink or newsletter service. Do you have any? Kindly permit me recognize in order that I may just subscribe. Thanks.|

  46. Thank you for the auspicious writeup. It in fact was a amusement account it. Look advanced to far added agreeable from you! However, how could we communicate?|

  47. Right here is the right site for anybody who really wants to find out about this topic. You know a whole lot its almost tough to argue with you (not that I personally will need to…HaHa). You definitely put a brand new spin on a topic that’s been written about for decades. Excellent stuff, just wonderful!|

  48. Hi, I do believe this is an excellent web site. I stumbledupon it 😉 I’m going to come back yet again since I book-marked it. Money and freedom is the greatest way to change, may you be rich and continue to help others.|

  49. Thank you for some other informative blog. Where else could I am getting that type of info written in such an ideal way? I’ve a project that I am just now running on, and I have been on the glance out for such information.|

  50. I have been surfing online more than 3 hours today, yet I never found any interesting article like yours. It’s pretty worth enough for me. Personally, if all webmasters and bloggers made good content as you did, the internet will be much more useful than ever before.|

  51. If some one desires expert view about blogging afterward i suggest him/her to pay a visit this webpage, Keep up the pleasant job.|

  52. Its like you learn my mind! You appear to know so much approximately this, such as you wrote the book in it or something. I believe that you could do with some percent to pressure the message house a bit, however instead of that, this is fantastic blog. A great read. I’ll definitely be back.|

  53. Howdy would you mind letting me know which hosting company you’re working with? I’ve loaded your blog in 3 different browsers and I must say this blog loads a lot quicker then most. Can you suggest a good web hosting provider at a honest price? Thanks, I appreciate it!|

  54. I’m amazed, I must say. Seldom do I encounter a blog that’s both educative and entertaining, and let me tell you, you’ve hit the nail on the head. The problem is something which too few people are speaking intelligently about. Now i’m very happy I found this during my search for something relating to this.|

  55. I really love your site.. Pleasant colors & theme. Did you build this amazing site yourself? Please reply back as I’m looking to create my very own website and want to know where you got this from or just what the theme is named. Many thanks!|

  56. Hey there are using WordPress for your blog platform? I’m new to the blog world but I’m trying to get started and set up my own. Do you require any html coding knowledge to make your own blog? Any help would be really appreciated!|

  57. Its like you read my mind! You seem to grasp a lot approximately this, like you wrote the guide in it or something. I believe that you just can do with some to power the message home a bit, but instead of that, this is wonderful blog. A fantastic read. I’ll definitely be back.|

  58. Greetings from Colorado! I’m bored at work so I decided to check out your blog on my iphone during lunch break. I love the info you provide here and can’t wait to take a look when I get home. I’m surprised at how quick your blog loaded on my mobile .. I’m not even using WIFI, just 3G .. Anyways, wonderful site!|

  59. Does your website have a contact page? I’m having problems locating it but, I’d like to shoot you an email. I’ve got some ideas for your blog you might be interested in hearing. Either way, great site and I look forward to seeing it expand over time.|

  60. Does your website have a contact page? I’m having problems locating it but, I’d like to shoot you an e-mail. I’ve got some creative ideas for your blog you might be interested in hearing. Either way, great blog and I look forward to seeing it grow over time.|

  61. certainly like your web site but you need to check the spelling on several of your posts. Several of them are rife with spelling issues and I to find it very troublesome to inform the truth however I’ll definitely come back again.|

  62. Hi, I do believe this is an excellent web site. I stumbledupon it 😉 I’m going to return once again since I book-marked it. Money and freedom is the greatest way to change, may you be rich and continue to guide other people.|

  63. Woah! I’m really digging the template/theme of this site. It’s simple, yet effective. A lot of times it’s challenging to get that “perfect balance” between user friendliness and visual appeal. I must say that you’ve done a very good job with this. In addition, the blog loads extremely fast for me on Chrome. Outstanding Blog!|

  64. Admiring the dedication you put into your site and detailed information you provide. It’s awesome to come across a blog every once in a while that isn’t the same unwanted rehashed information. Excellent read! I’ve saved your site and I’m including your RSS feeds to my Google account.|

  65. I was curious if you ever considered changing the structure of your website? Its very well written; I love what youve got to say. But maybe you could a little more in the way of content so people could connect with it better. Youve got an awful lot of text for only having 1 or two pictures. Maybe you could space it out better?|

  66. Thanks for the marvelous posting! I genuinely enjoyed reading it, you’re a great author.I will make certain to bookmark your blog and definitely will come back very soon. I want to encourage you continue your great job, have a nice morning!|

  67. Woah! I’m really digging the template/theme of this website. It’s simple, yet effective. A lot of times it’s tough to get that “perfect balance” between user friendliness and visual appeal. I must say that you’ve done a awesome job with this. Additionally, the blog loads very fast for me on Chrome. Superb Blog!|

  68. I really like what you guys are up too. This kind of clever work and coverage! Keep up the wonderful works guys I’ve added you guys to my own blogroll.|

  69. Woah! I’m really digging the template/theme of this site. It’s simple, yet effective. A lot of times it’s difficult to get that “perfect balance” between user friendliness and appearance. I must say you have done a fantastic job with this. Additionally, the blog loads extremely fast for me on Safari. Excellent Blog!|

  70. Greetings from Carolina! I’m bored to tears at work so I decided to browse your website on my iphone during lunch break. I really like the knowledge you present here and can’t wait to take a look when I get home. I’m surprised at how quick your blog loaded on my phone .. I’m not even using WIFI, just 3G .. Anyways, amazing blog!|

  71. Thank you for the auspicious writeup. It in fact was a amusement account it. Look advanced to more added agreeable from you! However, how can we communicate?|

  72. Hi! I’ve been following your site for a long time now and finally got the bravery to go ahead and give you a shout out from Porter Texas! Just wanted to tell you keep up the excellent job!|

  73. Hello there, just turned into aware of your weblog through Google, and located that it is really informative. I am gonna be careful for brussels. I will be grateful when you continue this in future. A lot of other people will likely be benefited out of your writing. Cheers!|

  74. It’s the best time to make some plans for the future and it is time to be
    happy. I’ve read this post and if I could I wish to suggest you some interesting things
    or tips. Maybe you can write next articles referring to this article.
    I want to read even more things about it!

  75. Thank you for the auspicious writeup. It in fact was a amusement account it. Look advanced to more added agreeable from you! By the way, how could we communicate?|

发表评论

电子邮件地址不会被公开。