必威体育下载克里斯蒂安·海尔曼

您当前正在浏览必威体育下载克里斯蒂安·海尔曼七月的博客必威体育简介档案,2007年。

7月存档,二千零七

正在查找内联代码编辑器

星期一,7月30日,二千零七

隐马尔可夫模型,现在有一个有趣的任务。我被要求找到一个内嵌的“代码编辑器”,这意味着一个脚本或者一个flash小部件或者一个允许编辑代码(php,JavaScriptHTML,CSS)在应用程序中。有很多内嵌的富文本编辑器,甚至一些所见即所得编辑,但是在线编辑器允许您在HTML文档是代码压缩.

你遇到别人了吗?

对模块模式表达爱意

星期二,7月24日,二千零七

早在2006年2月我宣称我爱这个字面上的物体解释说这是确保脚本不会干扰其他脚本的一个很好的方法,因为您向世界公开的只是一个对象名。而不是

功能初始化()(见表1){}
功能道格斯()(见表1){}
var女军人= “哦,格罗夫!”

可能很容易被覆盖

米斯本= {初始化功能()(见表1){}道格斯功能()(见表1){}女军人“哦,格罗夫!”
}

这样可以确保它们不会被覆盖或覆盖其他方法或变量。您可以以myscript.init()的形式访问它们,myscript.dostuff()和myscript.mymessage。我非常喜欢这个想法,当时我和我的技术编辑争论了很长一段时间,所以我希望我的书是基于这种脚本,或者根本不基于这种脚本。

唯一让我恼火的是,它仍然会导致相当大的方法,因为必须对对象内的每个变量调用使用长名称。真的,你可以用这个,但是当你使用事件处理而不使用范围修正悠悠事件您将把它用于事件发生的元素。

米斯本= {初始化功能()(见表1){
    .道格斯()(见表1)
  }道格斯功能()(见表1){}女军人“哦,格罗夫!”
}

因此不一定是可能的,所以你需要使用:

米斯本= {初始化功能()(见表1){MyScript。道格斯()(见表1)
  }道格斯功能()(见表1){}女军人“哦,格罗夫!”
}

这个,在更复杂的脚本中,会导致大量的代码和类型(除非使用集成电路设备而且看起来很臃肿。例如,我在将对象文本脚本装入书籍和杂志文章的80个字符代码模板时遇到了很多问题。

短代码的解决方案再一次是来自疯狂的javascript科学家的实验室道格拉斯·克罗克福德调用了模块模式。如果你想要一个非常详细和好的解释它在OO巫术方面的作用,查看易懂的Eric Miraglia对模块模式的解释悠悠博客。

除此之外,模块模式对我的作用是保持代码简短。我只公开那些需要公开的方法,然后我可以通过方法的名称而不是object name.method name在主对象内部调用它们。

米斯本= {可能存在的大量可变因素1个这是很长的一段时间功能()n(见表1){}道格斯功能()n(见表1){}初始化功能()(见表1){MyScript。道格斯()MyScript。可能存在的大量可变因素(见表1)MyScript。这是很长的一段时间()MyScript。可能存在的大量可变因素(见表1)
  }
}MyScript。初始化()(见表1)

变成

米斯本= 功能()(见表1){
  var可能存在的大量可变因素= 1个
  功能这是很长的一段时间()n(见表1){}
  功能道格斯()n(见表1){}
  返回 {初始化功能()(见表1){道格斯()可能存在的大量可变因素(见表1)这是很长的一段时间()可能存在的大量可变因素(见表1)
    }
  }
}()(见表1)MyScript。初始化()(见表1)

然而,还有两个问题:如果您想从另一个公共方法调用一个公共方法,您仍然需要通过此路由或预先设置主对象名:

米斯本= 功能()(见表1){
  var可能存在的大量可变因素= 1个
  功能这是很长的一段时间()n(见表1){}
  功能道格斯()n(见表1){}
  返回 {初始化功能()(见表1){道格斯()可能存在的大量可变因素(见表1)这是很长的一段时间()可能存在的大量可变因素(见表1)其他公众()(见表1) //<-大失败!
      .其他公众()(见表1) //<-工程MyScript。其他公众()(见表1) //<-工程}其他公众功能()(见表1){
    }
  }
}()(见表1)MyScript。初始化()(见表1)

另一个问题是,我对回报并不太满意其中包含了所有公共方法,我觉得它还是有点陌生。卡里迪·帕蒂提供关于尤伊堡的问题的解决方案只需在主对象内创建一个具有短名称的对象,该对象可以作为公共方法互相调用的快捷方式:

var米斯本= 功能()(见表1){
  var酒吧= {}
  var可能存在的大量可变因素= 1个
  功能这是很长的一段时间()n(见表1){}
  功能道格斯()n(见表1){}酒吧。初始化 = 功能()(见表1){道格斯()可能存在的大量可变因素(见表1)这是很长的一段时间()可能存在的大量可变因素(见表1)酒吧。其他公众()(见表1)
  }酒吧。其他公众 = 功能()(见表1){
  }
  返回酒吧
}()(见表1)MyScript。初始化()(见表1)

这也为我节省了一级缩进,这意味着我可以在80个字符中容纳更多的代码。我现在会更加认真地使用它。

更新

如果你喜欢这里的景象,再上一个台阶揭示模块模式

计划“让我成为演讲者”活动

星期五,7月20日,二千零七

正如你们中的一些人所知道的,Meri Williams已经为那些想在峰会和活动上成为演讲人的人建立了一个wiki。http://www.makemeaspeaker.com/(目前垃圾邮件:—(),我非常喜欢这个想法(甚至在我的高地谈资)。

然而,除了维基的一些小改动和一些关于它的帖子没有发生太多的变化,这就是为什么我要主动采取进一步行动的原因。我已经和几个人聊过了,我们很快就会在伦敦组织“让我成为演讲人”活动。格式将非常直接:

  • 潜在的发言者有5-10分钟(取决于注册人数)来介绍一个选择的主题
  • “专家”小组(活动组织者,有经验的演讲者)将在之后就什么是好的和什么需要改进给出建议和赞扬。
  • 小组和观众都投票选出了今晚的最佳表演,获奖者将获得一个小奖品。

我已经收到福伊尔斯(书店)的反馈,赞助图书作为奖励,我正在考虑使用雅虎!考文特花园办公室,伦敦和英国广播公司查林十字街的布什家,伦敦(多亏了伊恩·福雷斯特)轮流作为活动地点。

现在剩下的就是整理出一个日期(我的日历现在已经满了),并实际判断是否有兴趣这样做。

那你怎么说?

返回HTTP开销延迟-这次没有服务器端组件

星期二,7月10日,二千零七

跟随我昨天关于延迟加载虚拟人物图像的帖子超文本传输协议请求我想知道是否有一种方法可以做到这一点而不必求助于服务器端解决方案。简而言之,有。

使用脚本非常简单,只需将其包含在页面中,并确保包含以下格式的头像:


              
              SRC=
              “默认.gif http://avatarl”……
              >
             

默认的.gif是占位符,后跟哈希和实数统一资源定位地址.脚本所做的就是浏览所有图像,检查哪一个在其src属性中有散列,并删除散列中的所有内容。如果不想循环浏览文档中的所有图像,您可以在脚本中更改两个变量:您可以提供元素的ID以将循环约束到parentID中,还可以提供应用于avtclass中所有avtar图像的类。剧本是有创意共享分配许可的,所以用它发疯吧。

这是剧本的传奇:互联网德鲁·麦克莱伦昨天在博客上评论了这个想法的有用性,我们在午餐时讨论了这个想法,然后向大家传达了我们如何才能把它变成JS。第一个德鲁认为是真的统一资源定位地址作为占位符后面的参数,但这会把缓存当成默认的.gif文件吗?FOO将被认为是一个独特的统一资源定位地址.然后我们想到了片段标识符,对于浏览器foo.html和foo.html_bar是相同的资源。

我们不确定统一资源定位地址作为片段标识符,由于我们懒得去查这些,我查阅了步行标准百科全书,多沃德得到了片段识别思想的绿灯。在我离开办公室的路上,我把这个想法忘了。劳伦斯·卡瓦略谁认为有必要允许一个父ID和一个类来限制替换图像的数量?五站之后,在picdilly行,脚本完成了,现在我正在上传。有合适的人在你身边工作真是太好了。

思考Lowsrc_€“如何使网站看起来更快可用”

星期一,7月9日,二千零七

* ZOMG更新!*:我们把我们的头放在一起,想出了一个客户端解决方案PHP成分这与本文详细解释的情况相同。

你们中的一些人,已经在周围几年,可能会记得一个被遗忘的,非标准化的HTML调用的属性洛斯克.它得到了Netscape浏览器的支持,允许您定义真实图片的黑白预览图片。浏览器将首先加载“饮食”黑白照片,然后加载“全脂”彩色照片,并逐行覆盖预览图片。除了渐进式JPG(先加载低质量的,然后逐步变得清晰)和交错式GIF(先加载第二行,然后再填充其余部分)之外,这是一个在56K调制解调器是奢侈品的时代加快网站速度的杀手级技巧。

为什么我们有快速的连接,但网站仍然很慢?

我们中的大多数人现在的连接速度更快,但是我们总是对一些页面需要多长时间才能完成加载感到恼火。原因是我们嵌入了太多的资源(视频,图像,脚本)。

一般来说,浏览器似乎可以并行下载两个资源,并将其余的依赖项从加载暂停到完成加载为止。当你使用很多图像时,尤其是从不同的服务器,这会导致很长的延迟,对于这些图像,浏览器需要启动超文本传输协议请求,转换统一资源定位地址域名服务器IP和拉图像。

此外,浏览器会向我们显示一个无休止的旋转轮或进度条,并通知我们已经加载了“73个资源中的10个”。虽然这并不一定意味着我们不能使用当前的文档(现在的浏览器至少不会停止渲染,除非您使用失败的内联脚本),但它仍然让我们觉得事情仍在发生,文档还没有准备好。

最常见的例子是,当你在你的网站上使用虚拟人物时,会发生这种情况——描述贡献了与之相邻内容的用户的小图片。大量使用这些可以使页面看起来非常慢,下面的示例加载并显示来自雅虎的50个结果!答案与化身显示。

  • 用虚拟人物加载50个答案(在新窗口中打开)阿凡达

在使用Firebug__墋的网络监视器对该连接进行测试期间,总共14.92秒内加载了30个125kb的资源。

此延迟还意味着通过窗口的onload处理程序激发的脚本将被延迟,直到加载所有图像为止,这就是为什么图书馆必须使用可用的整装待发备战运行我们的脚本。

然而,如果您控制着服务器的中间层,那么就有一个解决方案可以让最终用户减少这种延迟的痛苦,并且似乎可以更快地交付页面。

在使用Firebug__墦s网络监视器测试此连接期间,总共12.7秒内加载了30个125kb的资源,但是,浏览器的轮子在3秒钟后停止旋转,我觉得一切都结束了。有什么区别?

php示例使用卷曲PHP从中加载信息雅虎!答案美国石油学会.我们将返回值序列化,并将HTML

      $url='http://answers.yahooapis.com/answersservice/v1/questionsearch?appid=yahoodemo&query=sport&results=50&output=php';
$ch=curl_init();
卷发($ch,科洛普网址$URL);
卷发($ch,科洛普返回传输,1);
$result=curl_exec($ch);
卷曲关闭($ch);
$output=非市场化($result);
foreach($output[‘questions’]作为$key=>$p)
回声
'$P['usernick']。';
回声

'$P['主题']。

';
回声

'$P['content']。

';
}

?>

这导致了超文本传输协议延迟用户感觉站点可用性的请求。一个简单的技巧和对脚本的小改动使这种延迟变得过时。

移位超文本传输协议在时间线的另一端

使用javascript,我们可以选择延迟加载额外的内容,这些内容对于您的站点的使用和可用性来说“不是真正需要的”。因为虚拟人物不需要了解答案页面的要点,我们可以修改后端脚本来获取图像URL,并用一个占位符_€“替换所有图像,比如一张“灰人”图片。以便稍后识别图片并将其链接到收获的图片统一资源定位地址,我们添加了一个动态ID。

      $url='http://answers.yahooapis.com/answersservice/v1/questionsearch?appid=yahoodemo&query=sport&results=50&output=php';
$ch=curl_init();
卷发($ch,科洛普网址$URL);
卷发($ch,科洛普返回传输,1);
$result=curl_exec($ch);
卷曲关闭($ch);
$output=非市场化($result);
foreach($output[‘questions’]作为$key=>$p)
回声
ID=“i--”。src=“http://us.i1.yimg.com/us.yimg.com/i/us/sch/gr2/nophoto3_48×48.gif”width=“48”height=“48”alt=“'$p[usernick]”>';
回声

'$P['主题']。

';
回声

'$P['content']。

';
$out[$key]=''.$p['userphotourl']'';
}

?>

当页面和所有其他资产完成加载后,我们通过将所有占位符的src属性替换为实际的URL来加载其余的图片。这个脚本应该放在文档的末尾。


     

对,这使得你的化身依赖于javascript,但它对可达性或搜索引擎优化因为每个化身的可选文本仍然可用。它唯一的影响是,访问者将看到从“灰色人”到用户的虚拟人物的转变,而且当大多数虚拟人物在初始视区之外或在其边界时,大多数用户对我们的小把戏“并不明智”,但他们得到的页面似乎加载得更快。

推迟大屏幕家具的交付

虽然这个技巧对第三方图像最有效,我们还可以进一步优化,并从缓慢连接时代的诀窍书中重新学习。

当Netscape 4和其他较旧的浏览器仍然占总访问人数的很大一部分时,迎合这些浏览器和较新浏览器的主要技巧是使用@import指令为较新的浏览器添加样式表,并使用简单的链接要为这些旧版本添加一个:

      

(单引号也被屏蔽了MSIE 5/马克)

我们可以很容易地为文档做这样的事情,也是。只需创建一个更基本的样式表,例如使用背景色而不是花哨的渐变,大斜面或漂亮但非常大的自然镜头。然后创建一个额外的样式表,添加所有这些背景图像。作为中的URLCSS是一样的超文本传输协议请求嵌入图像,这将给我们同样的收益。在文档的OnLoad处理程序中,你需要做的就是创建一个新的链接元素,指向带有图像的样式表,并将其添加到文档头。

      
[…]

这将在加载主文档后添加所有花哨的图像,并替换完成此项工作的背景色,直到页面准备就绪,我们可以继续使其更漂亮。