08 2011 档案
摘要:在Google Chrome浏览器出来之前,我一直使用FireFox,因为FireFox的插件非常丰富,更因为FireFox有强大的Firebug,对于前端开发可谓神器。在Chrome出来的时候,我就喜欢上它的简洁、快速,无论是启动速度还是页面解析速度还是Javascript执行速度(现在的FireFox4也比之前的FireFox3有很大的进步)。不过当时由于Chrome的开发者工具还不是很完善,而我又不是很熟悉,加之对于Firebug的好感和依赖,当时还是用回FireFox作为我的主浏览器。后来由于开发Chrome的插件(现在的FaWave),就一直使用Google Chrom作为我的主..
阅读全文
摘要:注:来自《中国经济和信息化》的报道,记者:孙宏超2011 年7月,仅仅47岁的“中国第一程序员”求伯君彻底退隐江湖。这代表着一个时代的过去,在求伯君风光的年代,程序员身上充满着个人英雄主义的浪漫情怀。而 随着时间的不断推移,单个程序员的能力显得越来越渺小,程序员逐渐沦为软件生产流水线上一颗螺丝钉,这让第一代程序员的神话再难重现。过去的20年,是中国程序员快意恩仇的江湖时代,程序员通过知识实现梦想和财富。历数曾经的数字英雄,名利双收的并不多见。而程序、经营两手抓的更是凤毛麟角。这些早一代的程序员创造的业绩激励了很多程序员进入软件开发。我们试图透过他们曾走过的足迹,看到中国软件的前世今生。过去的2
阅读全文
摘要:对于短期营销活动,SEO不是考虑因素,但对更长期的项目,尤其是商机产生或电子书销售,SEO是你商业模式中的重要方面。29. 你网站上的着陆页比你想象的要多不管你认为是否以前建立过着陆页,你得知道,着陆页不仅仅是单独的、基于营销活动的实体。随着搜索经济的增长,你网站上每个深度链接的产品详情页,基本上都是着陆页。记住这一点,再审视一下你的网站,对那些页面重新应用这本电子书中的技巧,帮助你从长尾内容中,提高你的转化和收入。30. 关心SEO对于长时间公开展示的页面,要确保针对价值最大化而优化内容。这意味着什么?好,最重要的是,它意味着关心。这就是要点。要认识SEO的重要性。继续阅读,会有更多可以采取
阅读全文
摘要:对于负责创建着陆页的架构师或设计师以及开发者,以下信息列表会有助于促进建立起一个解决真正需求的页面。营销或广告经理应当提供这些信息。36. 商业目标广告尤其是着陆页的商业目标是什么。你打算解决什么问题?37. 了解你的受众对访问你着陆页的用户,去了解他们的目的和动机。潜在访客面临的主要问题是哪些?知道这些,会让你设计出一种体验,在页面上以优先的顺序来回答这些问题。38. 访客行为访客的期望行为(主要的行动激发CTA)。说起来简单,但如果你没有保持一个特定明确的想法,那你的页面会失去焦点。39. 入口点注意所有的广告入口点(邮件、自然搜索、PPC、社会化媒体),及其现有的衍生资源,你要确保能维持
阅读全文
摘要:随着垃圾邮件、传销和一夜暴富的各种做法,充斥在网络营销中,成为一个令人信赖的领先者,对你的网页大有裨益。期间成功的首要关键在乎关心。在这方面不要大做口惠,因为人们怎么想要比你怎么想更重要。14. 列出电话号码通过显示一个电话号码,告诉人们你是正当经营,而且有真人在电线的那一头。对于那些不适应在线交易、但又喜欢你商品的人,这也是一种好的退路。15. 为有价值的内容扫除障碍如果你要免费提供点什么,但作为交换,要求得到个人信息的话,那就事先提供一些真正免费的东西,比如你提供材料的一小部分(第一章的预览等)。这样会引起兴趣,并让人知道,你不会发送毫无价值的东西给他们来交换个人信息。人都喜欢购买前试用的
阅读全文
摘要:坚持基本原则,能让你把一个糟糕的着陆页,变成人们很难指指点点的着陆页。在你起步时就有力地应用它们,然后再通过钻研后面讨论的内容,改进你的页面。1. 把人送往一个相关而且定向的页面你的首页是一种面向目标传播的混合——通常以好的理由来说。了解了这一点,就要阻止把人们送往那里的欲望,因为首页更好地定向于好奇的浏览类型,而不是人们从一个横幅和AdWords链接的点击进入。想想,一个目标,一段信息,一种行动。因此,需要一个页面——通常是新的——着陆页。2. 提供始终如一的体验从广告到着陆页,直至目的地网站,设计、信息和基调,应当与你的用户在点击链接/横幅广告时的预期相一致。你的上游广告是源头,以河流来类
阅读全文
摘要:我的稻田躺在盛夏的腹地碧绿的目光,一浪高过一浪痛疼在泥水里分蘖,拔节漫天的声音都凝固成一棵棵稻秧 时光在秧叶上迈着方步外来的白鹭飞起又落下稻田是他们最宽敞的婚床荷塘之外,牧牛走在茵茵的田埂上 从春天的第一滴雨水开始我手搭凉棚,一直在这里守望秧苗越长越壮,我的目光越长越瘦长浸满了露水和咯咯叭叭的阳光 那么多萤火在飞,青蛙在跳那么多生命降生,抑或消亡我想站在最高的秧叶上呐喊故乡啊,我一直穿着你最绿的衣裳
阅读全文
摘要:废话少说:1、用了Google分析等统计工具了吗?你应该跟踪每个页面的访问情况,哪些受欢迎,哪些挣得钱多。2、用了Pagespeed和Yslow了吗?70%用户看得到的速度提升都是通过客户端优化完成的。这两个工具可以帮你了解你的网站是否符合最佳惯例,并提供改进建议。3、通过feedbackarmy.com和usertesting.com进行可用性测试了吗?哪怕只有5个用户参与测试,你也能发现85%的问题。4、当网站出现错误时管理员能收到错误通知邮件。天有不测风云,不管你准备得多么充分,网站都可能出现意外错误,如果你能立马发现错误,就可以尽快修复。5、使用了Siteuptime.com/Ping
阅读全文
摘要:一个挑战作为家庭作业,你可以看看你是不是能解决这么一个问题:在页面上显示的每一个笑话后面放置一个叫“Delete this Joke”的超连接,当单击这个连接时,会从数据库中删除这个笑话并显示更改过以后的笑话列表。下面是对你的一些提示:你可以还在一个多功能页面完成全部的功能。你需要使用SQL的DELETE命令,这个命令我们曾在第二章中学习过。这是一个关键的问题。要删除一个指定的数据库,你需要能够唯一地标识它。Jokes表中的ID可以完成这个功能。你必须将要被删除的笑话的ID传递到删除笑话的请求中。将这个值放到“Delete this Joke”连接的查询字符串中是比较合适的。如果你觉得你已经有
阅读全文
摘要:我们之前曾经提到过while循环对于处理大量的数据来说是一个非常有用的控制语句,这是我们逐个处理结果集中数据行的代码的基本格式:while ( $row = mysql_fetch_array($result) ) {// process the row...}在这个while循环中的条件可能看上去与我们曾经使用过的有所不同,所以我们有必要在这里解释它的工作机理。你可以先把这个条件看成一个独立的语句:$row = mysql_fetch_array($result);mysql_fetch_array函数以一个参数(对于这个例子来说是存储在$result变量中)接受到一个结果集,并以一个数据的
阅读全文
摘要:向数据库中插入数据在这一节里,我们会看到我们会如何综合利用这些工具来让我们站点的访问者向数据库中添加他们自己的笑话。如果你喜欢挑战,你可以试试在向下看之前想想大致上应该怎么做。在这一节里只有很少新的东西。对于我们学过的东西来说,这只是一个简单的应用。如果我们想要让访问者能够输入新的笑话,我们首先需要一个表单,这儿是这个表单的代码:<FORM ACTION="<?php echo($PHP_SELF); ?>" METHOD=POST><P>Type your joke here:<BR><TEXTAREA NAME=&q
阅读全文
摘要:在第二章中,我们使用一个叫mysql的程序来连接到MySQL数据库服务器,在这个程序中,我们可以输入SQL查询(命令)并立即显示查询结果。在PHP中,有着类似的机制:mysql_query函数。mysql_query(<query>, <connection id>);在这儿,<query>是一个包含将执行的SQL命令的字符串。和mysql_select_db一样,连接标识这个参数也是可选的。这个函数的返回决定于发出的查询的类型。对于绝大多数的SQL命令来说,mysql_query返回逻辑真或逻辑假来标明执行是否成功。请参看下面这个例子,这是用来建立我们在第
阅读全文
摘要:在这一章内我们会学习到如何在一个Web页面中向数据库中存储信息并显示它。之前我们已经安装了MySQL这个关系型数据库引擎以及PHP这个服务器端脚 本语言,并学习了有关它们的基本知识。在学完这一章后,我们将明白如何综合利用这两个新的工具来构建一个数据库驱动的网站!对前一部分的回顾在我们往下继续之前,回顾一下我们学习的目的应该是件有价值的事。现在有我们的系统中有了两个强有力的新的工具:脚本语言PHP和数据库引擎MySQL。搞清楚两者是如果协同工作是很重要的。数据库驱动的网站的实质就是允许站点的内容存在于一个数据库中,并且可以通过这个数据库来动态地产生Web页面来让我们的访问者通过标准的Web浏览器
阅读全文
摘要:因为MySQL是一个完全分布式的软件,我们必须考虑到这些可能性:服务不可用、网络堵塞或 者是我们的用户名及口令不匹配。在这些情况下,mysql_connect函数不能返回一个连接标识(因为连接未被建立)。这时,会返回一个逻辑假。这使 得我们可以用一个if语句来处理连接的情况:$dbcnx = @mysql_connect("localhost", "root", "mypasswd");if (!$dbcnx) {echo( "<P>Unable to connect to the " ."d
阅读全文
摘要:解决方案是在我们站点的每一个页面都检查是否指定了一个用户名,如果需要,应该提求用户输入用户名。这意味着我们站点上的每一个页面都必须能显示用户名,在未指定用户名时,应提示用户输入。如果你现在就想到了使用if-else语句,那证明你的学习能力真的不错!我们的“多功能页面”应该根据不同的条件显示完全不同的内容,这个页面的源程序将会是这样的:<HTML><HEAD><TITLE> Multi-Purpose Page Outline </TITLE></HEAD><BODY><?php if (<condition&g
阅读全文
摘要:这样的循环可以用来处理一个事物的较长的列表(例如存储在数据库中的笑话),下面我们举了一个简单的例子:计数到10。$count = 1;while ($count <= 10) {echo( "$count " );$count++;}我知道这段语句可能看上去挺恐怖,但是我们可以一行行地来看它。第一行定义了一个叫$count的变量并将其赋值为1。第二行是while循环的开始,条 件是$count小于或等于(<=)10。第三行和第四行是while循环的循环体,当条件为真时,我们将重复执行它。第三行简单地输出了 一$count的值,并在其后加了一个空格。第四行将$co
阅读全文
摘要:控制语句在我们之前看到的PHP的代码的例子中,要么是只有一个单独的向Web页面输出文本语句;要么是一系列的依次执行的语句。如果你用其他语言编写过程序,你应该知道,实际上很少有这么简单的程序。和任何其他的编程语言一样,PHP也提供了很方便地处理脚本中的“控制流”的方法。就是说,PHP中包含了一些特殊的语句,通过这些语句你可是不受依次执行的顺序的束缚。这种语句被称之为“控制语句”。不理解?不要担心!有一些例子会很好地帮助你。最基本最常用到的控制语句是if-else语句。它的结构是这样的:if ( <condition> ) {//如果<condition>是真,将执行的语句
阅读全文
摘要:变量和运算符PHP中的变量与许多其它程序中的变量一样。当还未被初始化时,变量仅仅是一个假想的容器的名字,其中可以存放任何数值。下面的语句建立了一个叫$testvariable(在PHP中所有的变量都以一个美元符开始)并将其赋值为3:$testvariable = 3;PHP是一个“宽松类型”的语言,这就是说,一个变量可以包含任何类型的数据(数字、字符串或者其他类型),在它的存活期内其类型可以自由地转换。所以如 果在上面的语句后再出现这样的语句,这就意味着给我们的已经存在的$testvariable变量重新赋了一个值。这个变量从一个数值变量变成了一个字符 串变量:$testvariable =
阅读全文
摘要:用户交互和表单对于许多我们感兴趣的PHP应用来说,最基本的功能是实现与浏览这个页面的用户的交互。如果你熟悉JavaScript,你可能会习惯于这么一种事务处理 的模式,那就是对用户的许多行动直接作出反应(例如将鼠标移动到页面上的一个连接)。而对于PHP这样的服务器端脚本程序而言,它用来实现与用户交互的活 动范围要小得多,与用户的交互仅仅发生在用户向服务器发出请求以及服务器用一个动态页面作出回应之间。用户与PHP实现交互的关键是理解用户对一个新Web页面发出的请求中可能包含的发出信息。我们将会看到,PHP使得这个工作极为简单。最简单的方法是使用“URL查询字符串”在页面请求中发出信息。如果你曾经
阅读全文
摘要:基本的语法和命令对于任何一个用过C、C++、Java、JavaScript、Perl或其他源自C的语言的人,PHP的语法都会让你觉得非常熟悉。一个PHP脚本包含 一系列的命令(语句),Web服务器必须依次处理这些指令。与上面提到的其他语言一样,PHP语句也总是以分号(;)结束。这是一个典型的PHP语句:echo( "This is a <B>test</B>!" );这个语句调用了一个叫echo的内置函数,并传递给它这么一个字符串:“This is a <B>test</B>! ”。内置函数你可以理解为“不需要另外的说明PHP
阅读全文
摘要:在这一章中,我们将介绍PHP这个服务器端的脚本语言。我们将会看到,这个语言可以很好地支持与 MySQL数据库的通信。PHP简介正如我们在前面提到的,PHP是一个服务器端的脚本语言。这个概念可能很难理解,特别是如果你以前只用过HTML和JavaScript来设计过网页时更 是如此。一个服务器端的脚本程序与JavaScript在许多地方有点相像,两者都允许你在Web页面的HTML中插入一些程序(脚本)。其结果就是,这 些脚本使你可以控制在浏览器窗口内会显示什么,这显然要比直接使用HTML要来得灵活得多。JavaScript和PHP的关键的不同点是:当Web浏览器解释JavaScript时,包含这.
阅读全文