第二次探底,来源于四个大凉用错了,从而造成了严重的产能过剩。因此,需要非常非常长的时间,才能消化。要十几年到三、四十年才能消化。所以它来得非常非常非常慢,但它来了以后,就再也不走了。它将伴随着在座各位朋友走完你的余生,都解决不了。中国已经重蹈日本25年萧条的日子。我再告诉你,日本为什么萧条20几年,你们是中国少数几个知道原因的人。讲完之后我们大家一起哭泣。

你还记得90年1月份,美国“炸毁”了日本,还记得吗?炸毁日本的资产泡沫,是谁炸的?就是高盛炸的,日本的楼市、股市,狂泻千里一直跌到1992年,就在这个历史的重大转折时刻,日本政府犯下了和我们中国政府一模一样的错误,竟然开了一个大凉,那就是我们的四万亿,日本政府开的是136万亿日圆,从事着一模一样的“铁公基”的建设。从而导致严重的产能过剩,你们有空到日本的东京附近去看一下,日本的产能过剩的情况和中国一样。

你会看到一条8线道的高速公路国道,旁边有一条平行的8线道的省道,旁边还有一条平行的8线道的县道,三条平行的高速公路,开往同一个方向。开啊、开啊、开啊,我靠到海了。下车一看,什么都没有。只有一个卖纪念品的小商店等着你。请你们回答我,高速公路建好之后没车跑,立刻怎么样--产能过剩。由于建好了,不需要钢材、不需要水泥,所以就把这两个行业打回原形产能过剩。你还需要我重复一遍吗?一旦建好了,日本就完了。因为日本跟今天中国一样,不但有着一大堆过去的产能过剩,例如:钢铁、水泥;又多了一大堆新的产能过剩,例如:高速公路、等等“铁公基”。日本由于严重的产能过剩,所以需要二、三十年时间才能消化掉,这就是为什么到今天还没有复原的原因。都听懂了吗?

我们的领导人是从来都不读书的,这一点你们没问题吧,从来不知道学习日本的历史,我们竟然重蹈日本覆辙,我们开了四个大凉,够牛的,日本还只开了一个呢。我告诉各位制造业企业家,记住我的话,中国一定重蹈日本覆辙,你们将来所面临的是几十年的萧条。你们说不会吧郎教授,我们这GDP不是9.1吗?你信吗?严重的重复计算你知道吗,就算是真的,通胀是多少?6.2,这也是低估的。好吧,就算是真的,9.1减掉6.2,才是真正的经济增长,各位知道吗?是多少,是2.9。所以我想告诉你,中国的实际增长率2.9%,如果数据都是真的。可我告诉你都是假的,今天中国的负增长起码10%以上。我们的团队算的。日本每年增长多少?开了一个大凉之后,每一年2%以下,和中国一模一样,哭泣吧,朋友。完了。所以,各位制造业的未来,是长期到你们退休为止都完不了的产能过剩。 (全文 …)

web项目中的虫洞

分类:Javascript | 发表于2011/08/30 | 1条评论 446 views

虫洞?看看爱因斯坦对虫洞的定义:“虫洞”就是连接宇宙遥远区域间的时空细管。暗物质维持着虫洞出口的敞开。虫洞可以把平行宇宙和婴儿宇宙连接起来,并提供时间旅行的可能性。虫洞也可能是连接黑洞和白洞的时空隧道,所以也叫”灰道”。看起来虫洞就是连接两个距离很远的物体。在我们的WEB项目中会存在这种情况吗?

假设你有一个域名:domain.com。现在主站是www.domain.com。好了,还有一个博客的子域名:blog.domian.com。现在有个需求:要在主站上调用博客子站里面的数据,而且是客户端(通俗的说是页面上)调用。你想到的有几种方式?这个是不是两个感觉很远的物体,好了,让我们来制造一个虫洞来连接这两个跨域的站点。

虫洞一:iframe

是的,iframe在不跨域子域的情况下完全可以互通。假如现在你要在http://www.domian.com/parent.html和http://blog.domain.com/child.html互通,那么在parent.html里面嵌入一个iframe,id为child,src指向child.html。只要满足一个条件:在两个页面上都这样设置:

document.domain=’domain.com’

。这样设置之后两个页面的JS对象完全可以互通。在parent.html里面获得child.html的window对象:

。这样obj对象就是child.html里面的window对象了,有了这个对象可以操作child.html里面的任何东西。在child.html里面操作parent.html更加方便:parent对象就是parent.html的window对象。

上面所说的iframe虫洞只能适用一些简单的需求,但是我接来下所说的一些却是以这个为基础的。

虫洞二:jsonp

陌生吗?其实很熟悉,也许你每天都在用到。打开百度首页,启动你的抓包工具,能抓普通的http包即可(推荐fiddler)。在关键字的输入框里面随便输入一字符串。好了,看下你的抓包工具有没有收获。我这抓到了一个包:http://suggestion.baidu.com/su?wd=d&p=3&cb=window.bdsug.sug&t=1282228746640。这个url返回的内容:

window.bdsug.sug({q:”d”,p:true,s:["dnf","dnf官网","dota","dj","dnf视频","dj舞曲","dell","dn","dj舞曲 超嗨2009 mp3","dnf连发程序下载"]});

好了,这些东西是什么呢?其实这就是一段JS代码,有没有看到抓包工具抓到的URL中有一个cb的参数,值为:window.bdsug.sug,返回的内容就是window.bdsug.sug(object)。也许你已经想到这个怎么使用了,就是通过JS代码来载入一段JS代码。在著名的JS框架Jquery中有一个API:$.getScript(url,callback)。可以告诉你而且这个url可以完全跨域!

虫洞三:AJAX虫洞
AJAX相信大家都非常非常熟悉,这个概念确实改变了很多产品的设计。非常好用,但是有个致命的缺陷,不能跨域,子域名都不能,比如www.domain.com想通过ajax直接访问blog.domain.com是不可能的。注意我说的通过AJAX直接访问,那么有没有间接的方法呢?答案是肯定的。看看我上面写的第一个虫洞iframe,有没有点启发?是的,虽然不能直接访问blog.domain.com,但是可以通过blog.domain.com来ajax。而blog.domain.com又可以通过parent来访问www.domain.com。所以一切都通了。

好了 开始部署这个AJAX虫洞:

1 在blog.domain.com下部署一个proxy.html,里面就一个异步的对象和设置document.domain。这里假设这个异步对象为:pAjax(url,callback);

2 在www.domain.com通过iframe来加载这个proxy.html。

3 在www.domain.com使用proxy.html里面的异步对象呢?看如下代码:

var obj=document.iframes['proxy'].contentWindow;
var ajax=new obj.pAjax(‘http://blog.domain.com/query’,function(response){
//callback
});
ajax.get();

简单总结:
jsonp方式适用于完全跨域,比如a.com可以访问b.com,当然前提是b.com可以给你提供正确的服务。
别的都是要通过iframe来作为桥梁。没有这个桥梁也是不可能!这个桥梁还有许多别的用途,你可以挖掘,比方表单提交到iframe。

优化JS技巧–转摘

分类:Javascript,前端优化 | 发表于2011/07/06 | 没有评论 455 views

改进自己的JavaScript脚本性能

语言层次方面
循环
     循环是很常用的一个控制结构,大部分东西要依靠它来完成,在JavaScript中,我们可以使用for(;;),while(),for(in) 三种循环,事实上,这三种循环中for(in)的效率极差,因为他需要查询散列键,只要可以就应该尽量少用。for(;;)和while循环的性能应该说 基本(平时使用时)等价。
     而事实上,如何使用这两个循环,则有很大讲究。我得出的结论是:
     如果是循环变量递增或递减,不要单独对循环变量赋值,应该在它最后一次读取的时候使用嵌套的++或—操作符。
     如果要与数组的长度作比较,应该事先把数组的length属性放入一个局部变量中,减少查询次数。
     局部变量和全局变量
     局部变量的速度要比全局变量的访问速度更快,因为全局变量其实是全局对象的成员,而局部变量是放在函数的栈当中的。还有,局部变量屏蔽全局变量。 (全文 …)

使用Google CDN服务提供的jQuery库

分类:Javascript | 发表于2011/02/18 | 没有评论 927 views

jQuery,让我们控制页面元素更加方便快捷,让我们在编写js的时候不需要过多地考虑浏览器特性问题了。但是jQuery功能越强大,它本身的文件也越大。在做网站优化的时候,通常会通过优化js、css和图片文件能挤出来的几百k尺寸的下载量.

Google挺够意思,就提供了jQuery库,通过使用Google提供的jQuery库,Google的服务器和线路品质那自然是不在话下的。即提高了下载速度又减少了自己服务器的并发连接数。

用起来也很简单,直接在网页里引用Google服务器上的相关js文件就可以了。不过,如果引用多个js,就要插入多段的script。Google也提供了相应的办法,那就是google load。我们只需要在页面里引用一个js文件,就可以根据需要实时加载用到的js库了。
(全文 …)

【正则表达式1】基础

分类:Javascript | 发表于2010/12/23 | 没有评论 620 views

原文地址:http://www.css88.com/archives/423
使用正则表达式
在典型的搜索和替换操作中,必须提供要查找的确切文字。这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的。
使用正则表达式,就可以:
• 测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。
• 替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
• 根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。
例如,如果需要搜索整个 web 站点来删除某些过时的材料并替换某些HTML 格式化标记,则可以使用正则表达式对每个文件进行测试,看在该文件中是否存在所要查找的材料或 HTML 格式化标记。用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则表达式来查找并替换那些需要替换的标记。 (全文 …)

jQuery中英文字节正则表达式换算

分类:Javascript | 发表于2010/12/23 | 没有评论 1,039 views

$(function(){ $.each($(“.substr”),function(i,e){ e=$(e); var d=e.attr(“d”); if(d){ e.text(subStr(e.text(),e.attr(“l”))); }else{ e.text(subStr(e.text(),e.attr(“l”),1)); }}); }); /** * 控制文章的显示,以中文为基础 * s 待处理的字符串 * l 截取的长度 * d 是否出现“…”,默认出现 */ function subStr(s,l,d){ //alert(s+”-”+l+”-”+d); if(s == undefined){ return “”; } s=s.replaceAll(“ ”,”|”); l=l*2; var r = /[^\x00-\xff]/g; if(s.replace(r, “zz”).length <= l){ return s.replaceAll(“\\|”,” ”); } var m = Math.floor(l/2); for(var i=m; i=l) { var str=s.substring(0, i).replaceAll(“\\|”,” ”); if(d==undefined){ return str+”……”; }else{ return str; } } } return s.replaceAll(“\\|”,” ”); } String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { if (!RegExp.prototype.isPrototypeOf(reallyDo)) { return this.replace(new RegExp(reallyDo, (ignoreCase ? “gi”: “g”)), replaceWith); } else { return this.replace(reallyDo, replaceWith); } } (全文 …)