设万维读者为首页 万维读者网 -- 全球华人的精神家园 广告服务 联系我们 关于万维
 
首  页 新  闻 视  频 博  客 论  坛 分类广告 购  物
搜索>> 发表日志 控制面板 个人相册 给我留言
帮助 退出
 
-*-紫色王家思絮絮-*-  
我思无邪、我行无悔  
我的名片
紫荆棘鸟 ,124岁
来自: 芙蓉之国
注册日期: 2008-05-03
访问总量: 2,908,974 次
点击查看我的个人资料
Calendar
我的公告栏
信手涂鸦,自娱自乐,谢绝转载。
最新发布
· 高中同学 H
· 狗尾续貂:万维十四钗
· 闲侃(12):雅礼中学、义和团与庚
· 再侃:普通高学历海华 vs 高学历
· 琅琊榜:万维会员之毕业学校
· 童趣之七:小南瓜的投资理论
· 琅琊榜:万维会员都喜欢神马颜色
友好链接
· 艺萌:艺萌的博客
· 小满时节:小满时节的博客
· 杭州阿立:杭州阿立
· 木桩:木桩的博客
· 杨蔸湖:杨蔸湖的博客
· 甯宁寧:甯宁寧的博客
· 云乡客:云乡客的博客
· 慌兮兮:慌兮兮
· 敬丘:敬丘的博客
· 海天:海天之间
· 华蓥:华蓥的博客
· 芹泥:芹泥
· 安博:安博的博客
· 沐岚:沐岚的博客
· 瑾子:瑾子的博客
· lone-shepherd:牧人的博客
· 良石:良石的博客
· 天蓉:天蓉的博客
· 思羽:思羽的博客
· 雪山下的绛珠草:雪山下的绛珠草
· 嘎拉哈:嘎拉哈的博客
· 施化:施化的博客
· ladybug:ladybug
· 北雁高飞:北雁高飞的博客
· 老冬儿:老冬儿的博客
· 阿妞不牛:阿妞不牛的博客
· coolboy:coolboy9的博客
· 马黑:马黑的博客
· 特有理:特有理
· 山哥:山哥的文化广场
· 昭君:昭君的博客
分类目录
【绕指行歌】
· “借花献佛”给皮肤
· 宁静之缘
· 你音乐的俘虏
· 思乡谣之漂泊者
· 贝壳
· 泰戈尔"爱者之贻"写意
· 如梦令*羞涩
· 菩萨蛮*小山泉
· 云中谁寄锦书来(思君谣之四)
· 献给姐姐的歌(1-3)
【诗赋】
· 狗尾续貂:万维十四钗
· 秋(古绝一组)
· 写给朋友的五绝十手
· 笔名凑趣(七绝八首)
· 对联一个:徐才厚 vs 郭伯雄 (
· 地名无情对
· 唐诗和广韵之三:王昌龄诗歌的押
· 唐诗和广韵之二:答冬儿的问题
· 唐诗和广韵之一:唐诗中大约有多
· 次韵绿云清筝 (外一)
【词曲】
· 念奴娇:笑侃毛院作家培训班
· 瑶华
· 金缕曲
· 品令(二首)
· 菩萨蛮三首:秋分
· 天香 - 给小梦加油
· 生查子两个(to几位博友)
· 油版探春园园谱 (38个笔名)
· 苏幕遮*小梦写意
· 关于词的孤平、尾三平、以及可平
【如水行板】
· 高中同学 H
· 童趣之七:小南瓜的投资理论
· 童趣之六:不想任何人分享爱
· 童趣之五:长大了要和妈咪结婚
· 美国前首都:小城安纳波利斯
· 几个图片:点滴岁月
· 童趣之四:my strongest weapon
· 袁亚湘趣事一则
· 哈帕斯渡口
· 童趣之三:剪纸,摔倒
【无疆拓扑】
· 闲侃(12):雅礼中学、义和团与庚
· 闲侃(11):普通高学历海华 vs 高
· 说说助词“的”和“底”
· 闲侃几句中美城市的级别
· 当选美国科学院院士的大陆学者
· 马约拉纳,一位离奇失踪的超级天
· 推介荷尔德林之《塔楼之诗》
· 闲侃(8):郭汉英(之五,完)
· 闲侃(8):郭汉英(之四)
· 文人小吏大闹网站记
【咸嘉旧语】
· 诗歌所追求的真实感
· Winter Days
· 老诗两个,保存到这里(2)
· 旧日恋情 (数年前的一组,之二)
· “借花献佛”给皮肤
· 老诗两个,保存到这里
· 解语花
· 月宫里的桂花树
· 湘水河滨之恋曲
· 飘零的桃花 (组诗)
【鸟眼之红尘】
· 椰子、昭君、荷米娅和沙金等斗诗
· 在大大寒家作客的故事(之二):
· 在大大寒家作客的故事(之一):
【史之颜玉】
· 推介一下日军侵华第二大惨案:厂
· 清华、北大昔日在长沙的校园旧址
· 一些亚洲古代文物(奥巴马就职日
· 地球上早期的生命 (图文, II)
· 地球上早期的生命 (图文, I)
· 为什么中国古代没有产生自然科学
· 为什么中国古代没有产生自然科学
· 被遗忘的城市(1-6)
【朝花夕拾】
· 闲侃(12):雅礼中学、义和团与庚
· 闲侃(11):普通高学历海华 vs 高
· 闲侃(10): 从初等数学题到引力
· 闲侃(9):从芝诺悖论到民主法
· 闲侃(8):郭汉英(之五,完)
· 闲侃(8):郭汉英(之四)
· 闲侃(8):郭汉英(之三)
· 闲侃(8):郭汉英(之二)
· 闲侃(8):郭汉英(之一)
· 闲侃 (7):从先乘除后加减,到汉
【群英谱】
· 万维群英谱 22):冷冰儿大闹考场
· 万维群英谱 21):冷冰儿大闹考场
· 万维群英谱 20):屠颀策问岳蔚(
· 万维群英谱 19):屠颀策问岳蔚(
· 万维群英谱 18):南二楼和屠老七
· 万维群英谱 17):天马山前
· 万维群英谱 16):潇湘乡试会馆
· 万维群英谱 15):冬儿初下峨眉
· 万维群英谱 14):冷冰儿辞别师叔
· 万维群英谱 13):小妖女阿胖
【淙淙流水】
· 高中同学 H
· 再侃:普通高学历海华 vs 高学历
· 琅琊榜:万维会员之毕业学校
· 童趣之七:小南瓜的投资理论
· 琅琊榜:万维会员都喜欢神马颜色
· 邢燕子 vs mingcheng99 的大哥
· 给 mingcheng99 说几句
· 日本兵库县加西市的枫叶
· 嘎子:Love Trumps Hate(图片)
· 灌水:贴几个图片
【之唱之和】
· 狗尾续貂:万维十四钗
· 杂古·春阑闲忆紫荆棘鸟(ZT,by
· 金缕曲
· 天香 - 给小梦加油
· 生查子两个(to几位博友)
· 老万素描(万维网那些消失了的网
· 笔名凑趣(七绝八首)
· 风油精误入arendt之右眼(打油诗
· 五味众生相之二:点点滴滴见智慧
· 五味众生相之一:大侠秦腔
【他山之玉】
· 芝诺悖论解决了吗?(ZT,by 应
· 杂古·春阑闲忆紫荆棘鸟(ZT,by
· 寒山诗选 99 首 (转贴)
· 素手添香: 回首看景……2014年原
· 费曼:科学的价值 (ZT)
· 数学史十八传奇之费马: 黄裳 (ZT
· 数学史十八传奇之笛卡儿: 达摩祖
· 数学史十八传奇之阿基米德 (ZT)
· 素手添香: 2012年两牙风光月历 (
· 素手添香:2011年摄影月历 (新疆
【NoteBook】
· 老革命遇到新问题:怎样删除主贴
· 眾所周知
存档目录
06/01/2019 - 06/30/2019
03/01/2019 - 03/31/2019
07/01/2017 - 07/31/2017
02/01/2017 - 02/28/2017
12/01/2016 - 12/31/2016
11/01/2016 - 11/30/2016
10/01/2016 - 10/31/2016
09/01/2016 - 09/30/2016
08/01/2016 - 08/31/2016
06/01/2016 - 06/30/2016
05/01/2016 - 05/31/2016
04/01/2016 - 04/30/2016
03/01/2016 - 03/31/2016
02/01/2016 - 02/29/2016
01/01/2016 - 01/31/2016
11/01/2015 - 11/30/2015
10/01/2015 - 10/31/2015
09/01/2015 - 09/30/2015
08/01/2015 - 08/31/2015
07/01/2015 - 07/31/2015
06/01/2015 - 06/30/2015
05/01/2015 - 05/31/2015
04/01/2015 - 04/30/2015
03/01/2015 - 03/31/2015
02/01/2015 - 02/28/2015
01/01/2015 - 01/31/2015
12/01/2014 - 12/31/2014
11/01/2014 - 11/30/2014
10/01/2014 - 10/31/2014
09/01/2014 - 09/30/2014
08/01/2014 - 08/31/2014
07/01/2014 - 07/31/2014
06/01/2014 - 06/30/2014
05/01/2014 - 05/31/2014
04/01/2014 - 04/30/2014
03/01/2014 - 03/31/2014
02/01/2014 - 02/28/2014
01/01/2014 - 01/31/2014
12/01/2013 - 12/31/2013
11/01/2013 - 11/30/2013
10/01/2013 - 10/31/2013
09/01/2013 - 09/30/2013
08/01/2013 - 08/31/2013
07/01/2013 - 07/31/2013
06/01/2013 - 06/30/2013
05/01/2013 - 05/31/2013
04/01/2013 - 04/30/2013
03/01/2013 - 03/31/2013
01/01/2013 - 01/31/2013
12/01/2012 - 12/31/2012
11/01/2012 - 11/30/2012
10/01/2012 - 10/31/2012
09/01/2012 - 09/30/2012
08/01/2012 - 08/31/2012
07/01/2012 - 07/31/2012
06/01/2012 - 06/30/2012
05/01/2012 - 05/31/2012
04/01/2012 - 04/30/2012
01/01/2012 - 01/31/2012
12/01/2011 - 12/31/2011
11/01/2011 - 11/30/2011
10/01/2011 - 10/31/2011
09/01/2011 - 09/30/2011
04/01/2011 - 04/30/2011
03/01/2011 - 03/31/2011
02/01/2011 - 02/28/2011
01/01/2011 - 01/31/2011
12/01/2010 - 12/31/2010
11/01/2010 - 11/30/2010
10/01/2010 - 10/31/2010
09/01/2010 - 09/30/2010
06/01/2010 - 06/30/2010
05/01/2010 - 05/31/2010
04/01/2010 - 04/30/2010
03/01/2010 - 03/31/2010
02/01/2010 - 02/28/2010
12/01/2009 - 12/31/2009
09/01/2009 - 09/30/2009
11/01/2008 - 11/30/2008
10/01/2008 - 10/31/2008
09/01/2008 - 09/30/2008
08/01/2008 - 08/31/2008
07/01/2008 - 07/31/2008
06/01/2008 - 06/30/2008
05/01/2008 - 05/31/2008
发表评论
作者:
用户名: 密码: 您还不是博客/论坛用户?现在就注册!
     
评论:
博客新版很慢的另一原因是JavaSript很糟糕
   

改贴,在这里加几句:很多同学(包括我自己)留言说,没法删除评论,没法修改帖子,新版为啥将这些基本功能去掉了,etc。其实呢,这些功能都在,只不过因为新版的程序问题,导致这些功能被隐藏了,因为如前贴留言以及这里所说的那样(见下面正文打头的蓝色部分),无论用户做什么(点击阅读,发评论等),用户电脑程序都会向服务器发出更新请求,这其中就包括登录请求(哪怕你已经登录了)。比如说你刷新自己的主页或者某篇文章,如果你登录了,老版是不会向服务器继续发登录请求的,因此老版知道你登录了,你是文章的主人,于是将“修改文章”链接enable。但新版不行,你点击什么,程序会assume你没登录(尽管记住了你的userName/password)。在新版。通常登录比刷新文章慢,所以你的文章刷新后,登录并没有完成,所以系统就会判定你不是文章的主人,从而disable修改文章的链接。删除评论也是同样的原因。这些都是新版程序bug带来的。

目前没啥好办法删除评论,但修改文章是可以的。你登录后,点击左上角的“发表日志”链接,点击完后再点击左侧的“日志管理”就成了。


博客新版除了提供的功能严重退化外,另一值得吐糟的地方就是它非常慢,至少比旧版明显慢。这基本上应该是共识了。这里先不说功能退化,光说快慢的问题。新版之所以慢,原因估计不少,但有些原因是结构上根本的,凭万维的技术力量,在较短的时间内只怕是修改不了的 --- 上贴的留言里我们分析了新版之所以慢的主因之一,这里将留言摘录如下,估计大部分读者都能看得懂:

“刚才熘达了一下,很明显,新版为啥更慢的原因是,无论用户做什么 (例如点击文章),那么整个版面都将更新一次,包括用户登录。
如果你点击文章,那么像用户登录,版面的左栏(什么友好连接,名片,分类目录等),还版面最上面那些和文章无关的东西,是不必更新的。
旧版之所以快一点,是因为这些不必要刷新的内容,就没去服务器那边刷新,只有文章显示的那部分才去刷新。
新版呢,大家留意一下,点击文章后,左栏的很多内容开始都是空白,随后才显示完整。为啥呢?很明显,新版的程序在向服务器那边发刷新的请求---这样很明显,服务器和用户电脑都变得更慢了。
哪 位电民看看我说错了没。我估计十有八九是这么回事情。你说新版为啥不慢?不慢才奇怪,冤枉做了很多不必要的劳动。”

这里我觉得我找到了新版为啥很慢的另一主因:糟糕的 JavaScript。

茶馆的大拿夭夭同学很早就怀疑 BBS 的 JavaScript 很糟糕,因为他说经常让他的 browser 当掉:那些 JavaScript 经常让他的电脑 CPU 100% 负载运行。这种情形,我在新版博客已经遇到几次了。例子之一就是芹泥同学的文章:我们的秋天(ZT)
   http://blog.creaders.net/u/6210/201509/235929.html
因为我一般不用 IE,所以我就测试 FireFox 以及 Chrome。我的 FireFox 版本是 40.03,Chrome 版本是 45.0.24……,估计不是最新的版本,但无论如何算很新的。测试结果,我用 chrome 能打开芹泥这篇文章(虽然不算快),但用 Firefox 基本上打不开,因为我遇到了夭夭差不多的情况:CPU 满负荷运行,大约一分钟后浏览器就弹出一个类似下面这个 warning 的窗口:
jsPopup.jpg



通常如果在别的网站遇到这种 JavaScript 的问题,选择“Don't ask me again”+“Stop script”就行了,但万维不行:它还是继续 run 这个“language.js”,让 CPU 100% busy,然后弹出个类似的窗口……就芹泥这篇文章而言,问题都出在这个 language.js,它像土八路一样非常让国军讨厌:煮不烂,咬不动,打不掉,甩不开,呵呵。

如果将 JavaScript disable 掉如何呢?尽管这是个馊主意,但不妨试试看。于是我 disable 了 JavaScript。结果我的主页就成了下面这个样子:

noJS.jpg


看到了么?登录内容以及左侧栏目的内容全部消失了,不过主栏内容都在,点击文章时速度很快,文章内容和评论内容不到一秒全部加载完毕。如果 JavaScript is enabled(通常情形),打开一篇文章需要 5-20 来秒。因此结论就是:
    新版之所以很慢,主因之一是因为 JavaScript 导致的(上面我从昨天有关的帖子引述的结果,是另一主因,而且那个主因也很明显是用户电脑这边的程序问题:那些根本不需更新内容的模块,它总是不停地向服务器发出更新请求)。

有严重问题的可能不止 lanaguage.js,但 language.js 肯定有严重问题,因为芹泥这篇文章,看不出有啥异样,但用 firefox 就是打不开(我将 firefox 的缓冲,cookie全部清除后重新 start firefox,还是有同样的问题,文章打不开)。

于是俺来 debug 这个 lanaguage.js,看能否看出什么问题,尽管我对 JavaScript 一窍不通。等了几分钟,debug 结果显示如下:

debug.jpg

问题出在 Line 71:for(var i=0;i<cc.length;i++),不过这有些奇怪,cc 又不是空的,为啥这里出故障?因此可能是这个 for-loop 里面的内容出了差错。这个 for-loop 如下:

    for(var i=0;i<cc.length;i++)
    {
        if(cc.charCodeAt(i)>10000&&tt.indexOf(cc.charAt(i))!=-1)str+=ss.charAt(tt.indexOf(cc.charAt(i)));
          else str+=cc.charAt(i);
    }

其中一些变量的取值见图:

d2.jpg

cc = “  我连忙道贺,他无言只微笑着一鞠躬。”(芹泥原文中的一句),ss 的值很长,见附录。str =“  ”,tt = 的值也很长,见附录留言。这几行不知在干什么,倒好像在进行繁体字和简体字转换(哪位电民懂这个?俺是一窍不通),似乎是这么回事:
1)对芹泥原文的每一段(这时的一段刚好就一句)话,或者一句话,或者一行(or whatever)
2)对1)中的每个字,如果它是繁体字,转换为简体字。

如果 language.js是这么运行的,那肯定慢了(至于有什么好办法,别问我,呵呵,不懂),不过如果光是慢还能凑合(例如在 Chrome 中),问题在于它基本上不 work。如果你看上上图的 “Call Stack”,你会发现 Line 45 似乎被自己 call 了非常非常非常多的次数(至少上千次)。不知程序在干嘛。这几行程序我拷贝如下,供电民们参考,其中红色那行就是 Line 45:

//转换对象,使用递归,逐层剥到文本
function LangBody(fobj)
{
    if(typeof(fobj)=="object"){var obj=fobj.childNodes}
    else
    {
        var obj=document.body.childNodes
        document.title=LangText(document.title)
    }
    for(var i=0;i<obj.length;i++)
    {
        var OO=obj.item(i)
        if("||BR|HR|TEXTAREA|".indexOf("|"+OO.tagName+"|")>0)continue;
        if(OO.title!=""&&OO.title!=null)OO.title=LangText(OO.title);
        if(OO.alt!=""&&OO.alt!=null)OO.alt=LangText(OO.alt);
        if(OO.tagName=="INPUT"&&OO.value!=""&&OO.type!="text"&&OO.type!="hidden")OO.value=LangText(OO.value);
        if(OO.nodeType==3){OO.data=LangText(OO.data)}
        else LangBody(OO)
    }
}

 
关于本站 | 广告服务 | 联系我们 | 招聘信息 | 网站导航 | 隐私保护
Copyright (C) 1998-2024. Creaders.NET. All Rights Reserved.