Tuesday, June 4, 2013

10 款 Robots.txt 在线生成工具


虽然 Robots.txt 虽然只是一个简单的 TXT,但是并不是所有人都愿意手工编写。芒果介绍几款在线的 Robots.txt 生成器,可视化地按需生成 Robots.txt 文件。
1. Robots.txt Generator
提供访问频度,多种搜索引擎,以及网站地图,限制目录等选项的自定义功能。Ajax 实时生成代码,无需刷新。
2. Yellowpipe Robots.txt generator
允许或禁止所有搜索引擎收录,自定义限制目录,允许排除不安全机器人的索引。
3. Robots.txt Generator Tool
选项丰富,提供多种搜索引擎列表,Ajax 实时生成代码,并提供搜索引擎额外排除功能。
4. Robots Text Generator
可选多种搜索引擎,自主设定限制目录或页面,功能较为简单。
5. Generate Robots.txt File
页面简洁无广告,功能简单选项少,但提供 Robots.txt 文件详细的使用说明。
6. Robots Tags Generator
提供搜索引擎和限制目录自定义,以及 Robots.txt 的简要使用方法。
7. Robots.txt Generator Tool
自主设定是否被搜索引擎收录,以及限制目录或页面,功能简单。
8. Free Robots.txt Generator
支持设定限制索引的目录,提供生成后的 Robots.txt 文件下载。
9. Robot Text Generator
自定义限制目录,并允许排除恶意机器人,如提取电子邮件地址,复制网站内容的机器人等。
10. Robots.txt Generator
允许针对某一个搜索引擎单独设置,Ajax 实时生成代码。

如果解决Hybrid开发中的白屏问题


这两天有人在邮件和微博上问我,混合(Hybrid)开发如何解决白屏的问题,本来我是计划要写一写Hybrid开发的各种问题,但看来文章可能会太长,所以还是先谈谈白屏的问题吧。我觉得Android如果使用到Hybrid技术的,也是可以借鉴的,解决思路是一样的。
我们通常把移动开发分为Web、Native和Hybrid,但其实Hybrid又可以细分的。最简单的是在Native中放一个WebView, 然后加载一个兼容智能机的网站,其实就相当于在用户的手机上建立一个快捷方式,也算是占据用户桌面的应急用法吧。用这种方法要注意检测网络是否正常,不正 常要给予提示,否则苹果是不予通过的。第二种是将Web相关文件全部放在本地,数据库一般用Sqlite做本地存储,用户就算不联网也能工作。第三种可能 是以Native为主,在某些特定的模块才会用到WebView。
其实要我说,只有第二种才算是真正的Hybrid,话说Hybrid这个词可真难听,翻译过来的词是杂种、杂交,既然大家都这么用,我也就随了吧。 很重要的一点是Native和Web有没有交互,没有的不算,你直接在WebView中加载一个HTML页面,这算哪门子的Hybrid开发,这种也谈不 上什么技术含量了,没什么好讲的。你这种开发很难模拟Native的体验嘛,用户一看就不对啊,我说的Hybrid开发是那种多数用户看不出差别的。
之所以我要把Hybrid开发的种类讲清楚,是因为它们遇到的白屏问题有所不同,有些白屏问题是可以通过技术解决的,有些是需要通过设计上去解决的,通常我们说的白屏有三种。

第一种是页面切换带来的白屏,就是你从index.html跳转到product.html会出现的白屏,嵌个WebView就加载一个网站最容易 出现这种问题。这个问题只能从设计上解决,技术上是无法解决的,或者解决起来比开发一个Native程序成本还高。正确的做法应该是避免页面之间的跳转, 将所有的内容放入到一个HTML中,通过CSS的Display属性来切换View。

第二种是因为页面过长带来的白屏,在iOS的WebView中,如果页面内容过长,iOS是不会一次渲染完成的,所以太长的时候,就会产生一种像 Phtoshop中那种透明背景的方格效果。这个问题最好的解决方法还是从设计上入手,避免这种过长的滚动。使用iScroll做滚动可以解决部分问题, 但还是不能太长。

第三种白屏是启动的时候有讨厌的白屏,因为WebView加载HTML并渲染有一定的时间,用户一打开你的App,WebView还没有加载并渲染 完比,白屏出现了。这种情况解决要用一些技巧,iOS可以用两个View,一个View放上Loading画面,另一个View加载HTML,当HTML 加载完毕后,用Javascript通知Native,收到HTML加载完比后Native代码负责切换View即可。
有人肯定要问,为什么不直接用Objective-c代码写WebView的onLoad事件?很简单,因为Load完成可能还有很多事要做,而且 一般要延时300毫秒再切换View才能保证白屏不出现。你可能要再问了,直接用延时不好么,为什么要这么麻烦?不同的机器性能不一,而且有些时候内存占 得多加载可能就慢点,直接延时太死。