2011年06月29日
by 江小邪
0 comments
最近在博客园看到一篇报道关于一个人好像是别出心裁的用android程序求婚,最后成功了,在留言部分看到很多园友说:好浪漫,好幸福;文章中提到的一个在线开发程序,叫做app invertor,于是在网上稍微看了一下,下班回到家之后马上下载,起先是用迅雷下载的,结果下载进度一点也不动,于是乎,***用IE9 下载,下载了两次没有成功,原因可能是保存路径有问题,建议先保存到桌面,然后再安装,下载地址如下http://dl.google.com/dl/appinventor/installers/windows/appinventor_setup_installer_v_1_2.exe(建议***);下载好之后安装就可以了,好像官方建议安装过程中的路径不要修改,以防在加载模拟器的时候找不到路径,当然你也可以自己定义路径,不过在使用模拟器的时候需要人工的输入模拟器的路径,以后就不会出现这种问题了,下面就可以进入按android的在线编辑页面了,请在浏览器的地址栏中输入:http://appinventor.googlelabs.com/ 就可以看到了,先放图···
第一次进入是会出现下面的界面,请点击new,并填写相应的项目名称即可,我填写的是First

进入First项目,界面如下 (更多…)
标签Tags:
android,
Android笔记,
div,
google,
上传,
属性,
工具,
幸福,
成功,
浏览器,
组件,
网站,
连接,
页面
Android笔记
2010年07月26日
by 江小邪
0 comments
(更多…)
标签Tags:
apache2,
code,
iis6.0,
include,
mysql,
path,
PHP,
PHP,
php.ini,
server,
session,
sql,
url,
web,
上传,
中文,
兼容,
初学者,
区别,
失败,
密码,
应用程序,
数据,
数据库,
方法,
版本,
程序,
网站,
网络编程,
解决,
解决方法,
设计,
诫,
邮件,
错误,
页面,
验证
PHP, 网络编程
2010年07月26日
by 江小邪
0 comments
Sockets在PHP中是没有充分利用的功能。今天你将看到产生一个能使用客户端连接的服务器,并在客户端使用socket进行连接,服务器端将详细的处理信息发送给客户端。
当你看到完整的socket过程,那么你将会在以后的程序开发中使用它。这个服务器是一个能让你连接的HTTP服务器,客户端是一个Web浏览器,这是一个单一的 客户端/服务器 的关系。 (更多…)
标签Tags:
PHP,
PHP,
php.ini,
server,
web,
代码,
函数,
区别,
实例,
应用程序,
成功,
操作系统,
数据,
注释,
浏览器,
程序,
类,
系统,
网络编程,
英文,
获取,
解决,
诫,
连接,
错误,
页面
PHP, 网络编程
2010年07月26日
by 江小邪
0 comments
PHP实现对文本数据库的数据显示、加入、修改、删除、查询五大基本操作的方法
我用一个留言本程序作为例子,阐述PHP实现对文本数据库的数据显示、加入、修改、删除、查询五大基本操作的方法。
此文本数据库共有字段10个:客户IP、发言时间、客户名、客户EMAIL、客户主页地址、留言表情图片名、客户QQ、客户形象图片、留言内容、管理员回复内容。
1、加入数据程序段。
$date=date(“Y-m-d H:i:s”);//取得系统时间
$ip = $HTTP_SERVER_VARS[REMOTE_ADDR]; //取得发言的IP地址
$text=encode($gb_text);//去掉留言内容后面的空格.
$fp=fopen(“gb.dat”,”a”);//以只写模式打开gb.dat文本文件,文件指针指向文件尾部.
$str=$ip.” ”.$date.” ”.$gb_name.” ”.$gb_email.” ”.$gb_home.” ”.$face.” ”.$gb_qq.” ”.$head.” ”.$text.” ”.$reply.”\n”;//将所有留言的数据赋予变量$str,” ”的目的是用来今后作数据分割时的数据间隔符号。
fwrite($fp,$str);//将数据写入文件
fclose($fp);//关闭文件
showmessage(“留言成功!”,”index.php”,”3″);//留言成功,3秒后自动返回主界面。
其中的$gb_name 、$gb_email、$gb_home、$face、$gb_qq、$head、$gb_text、$reply是由发言表单传过来的数据。
(更多…)
标签Tags:
code,
PHP,
PHP,
server,
判断,
图片,
成功,
搜索,
数据,
数据库,
方法,
程序,
类,
系统,
网络编程,
获取,
表单,
诫,
连接,
页面
PHP, 网络编程
2010年07月26日
by 江小邪
0 comments
第一点:require() 和 include() 除了怎样处理失败之外在各方面都完全一样。include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果你想在丢失文件时停止处理页面,那就用require() 吧,它直接会中止脚本。而include() 就不是这样,脚本会继续运行,但是会抛出一个Notice级别的错误。同时也要确认设置了合适的include_path。
就是说再解析程序时即读取require的文件,而不是解析后,如果不能读取到被require的文件,就不能进行下一步动作。所以,不被正确包含就会导致程序的文件,用require比较好。
第二点:require() 无论如何都会包含文件,而 include() 可以有选择地包含:
<!–p if(FALSE){ require(‘a.php’); } if(FALSE){ include(‘b.php’); } –>
比如上面这段代码,a.php一定会被包含,而b.php一定不会被包含。require类似于一次预扫描,在程序执行时,无论在函数里或是函数外,都将先把require的文件执行,且只执行一次。而include则是每执行一次就调用一次文件,即这次执行后,下次再执行执行到这里,仍将再执行一次。大家应该明白这个区别了吧:)
同时可以看下require_once和include_once的区别。
require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。
include_once() 语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。如同此语句名字暗示的那样,只会包括一次。
第一点:require() 和 include() 除了怎样处理失败之外在各方面都完全一样。include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果你想在丢失文件时停止处理页面,那就用require() 吧,它直接会中止脚本。而include() 就不是这样,脚本会继续运行,但是会抛出一个Notice级别的错误。同时也要确认设置了合适的include_path。
就是说再解析程序时即读取require的文件,而不是解析后,如果不能读取到被require的文件,就不能进行下一步动作。所以,不被正确包含就会导致程序的文件,用require比较好。
第二点:require() 无论如何都会包含文件,而 include() 可以有选择地包含:
<!–p if(FALSE){ require(‘a.php’); } if(FALSE){ include(‘b.php’); } –>
比如上面这段代码,a.php一定会被包含,而b.php一定不会被包含。require类似于一次预扫描,在程序执行时,无论在函数里或是函数外,都将先把require的文件执行,且只执行一次。而include则是每执行一次就调用一次文件,即这次执行后,下次再执行执行到这里,仍将再执行一次。大家应该明白这个区别了吧:)
同时可以看下require_once和include_once的区别。
require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。
include_once() 语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。如同此语句名字暗示的那样,只会包括一次。
标签Tags:
include,
path,
PHP,
PHP,
代码,
函数,
区别,
失败,
程序,
类,
网络编程,
错误,
页面
PHP, 网络编程
2010年07月26日
by 江小邪
0 comments
AJAX bandwagon是个好去处。它带给你更快、更高效、更强动态的应用。但它也有自身的缺陷。
初一看,具备一些常识似乎就能避免这些缺陷,在一定程度上,的确如此。但从DHTML起源来看,AJAX应用程序充满了结构性差异。不论你在应用程序开发工作中掌握了多少常识,从别人犯的错误中吸取教训也是有好处的。我们称这些错误为“七宗死罪”,但它们不能代表全部的错误。
事实上,在你犯这些致命过失之前,你可能首先犯了一些较轻的错误。因此我们从这里着手。这是每个人都可能犯的错误。这些错误是多么普遍,通过Google搜索一下,你就可以发现大部分的错误。
(更多…)
标签Tags:
ajax,
dhtml,
google,
html,
javascript,
JavaScript&Ajax,
url,
人,
应用程序,
搜索,
新手,
方法,
更新,
浏览器,
程序,
网络编程,
自身,
设计,
诫,
链接,
错误,
页面
JavaScript&Ajax, 网络编程
2010年07月26日
by 江小邪
1 comment
Ajax的核心是JavaScript对象 XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
在创建Web站点时,在客户端执行屏幕更新为用户提供了很大的灵活性。下面是使用Ajax可以完成的功能:
* 动态更新购物车的物品总数,无需用户单击Update并等待服务器重新发送整个页面。
* 提升站点的性能,这是通过减少从服务器下载的数据量而实现的。例如,在Amazon的购物车页面,当更新篮子中的一项物品的数量时,会重新载入整个页面,这必须下载32K的数据。如果使用Ajax计算新的总量,服务器只会返回新的总量值,因此所需的带宽仅为原来的百分之一。
* 消除了每次用户输入时的页面刷新。例如,在Ajax中,如果用户在分页列表上单击Next,则服务器数据只刷新列表而不是整个页面。
* 直接编辑表格数据,而不是要求用户导航到新的页面来编辑数据。对于Ajax,当用户单击Edit时,可以将静态表格刷新为内容可编辑的表格。用户单击Done之后,就可以发出一个Ajax请求来更新服务器,并刷新表格,使其包含静态、只读的数据。
一切皆有可能!但愿它能够激发您开始开发自己的基于Ajax的站点。然而,在开始之前,让我们介绍一个现有的Web站点,它遵循传统的提交/等待/重新显示的范例,我们还将讨论Ajax如何提升用户体验。 (更多…)
标签Tags:
ajax,
html,
ie,
javascript,
JavaScript&Ajax,
status,
url,
web,
xml,
xmlhttp,
代码,
兼容,
函数,
分页,
容器,
对象,
属性,
常用,
应用程序,
引入,
数据,
方法,
更新,
浏览器,
程序,
系统,
网络编程,
节点,
表格,
诫,
说明,
连接,
页面
JavaScript&Ajax, 网络编程
2010年07月26日
by 江小邪
0 comments
Ajax控件和类库现在真的太多了,不知不觉中增加了Ajax的神秘性和复杂性,看到版内很多人为此费解和伤神,决定发此贴谈谈本人对Ajax的观点,希望能让大家对Ajax有一个本质的认识。
观点一:Ajax和服务器端技术毫不相关
严格的说,与传统web开发相比,Ajax是完完全全的客户端技术。由于很多控件封装了客户端和服务器端的通信过程,因此很多问题也因通信而起。事实上,不论何种Ajax技术,服务器端都是返回的一个纯文本流,再由客户端来处理这个文本。这段文本可以是xml格式,也可以是一个Html片段,也可以是一段JavaScript脚本,或者仅是一个字符串。服务器端仅仅是作为一个数据接口,客户端使用XMLHttpRequest对象来请求这个页面,服务器端在页面内写入结果文本,这个过程和普通的web开发没有任何区别。所不同的只是,客户端在异步获取结果后,不是直接显示在页面,而是由客户端的Javascript脚本处理后再显示在页面。至于各种控件所谓的能返回DataSet对象,Date对象,或者其他的数据类型,都是封装了这个处理过程的结果。
观点二:DOM模型是Ajax最本质的技术
之所以没有把XMLHttpRequest列为最本质的技术,因为本人觉得它实在是太简单了,它只是可以让浏览器在后台请求一个页面,并将其内容交给JavaScript处理。真正的核心应该是:DOM模型,即文档对象模型。在DOM模型里,Html标记都被认为是一个对象,例如:div对象,table对象等等。DOM模型就规定了这些对象所具有的属性、方法和事件。通过这些性质,可以对一个已经显示于浏览器的页面进行内容的修改,例如增加节点、修改节点位置,删除节点等等。而不仅仅是一个innerHTML属性这么简单,虽然这是一个很有用的属性。
观点三:在使用Ajax控件前理解它们的实现
使用Ajax控件的确可以提高效率,但如果你空中楼阁般使用控件,那就得不偿失了。从一个控件换到另外一个控件又会有一个漫长的学习曲线。所以应该从底层了解其,况且Ajax实在不是什么高深的技术。其实任何东西的最底层其实都是简单的,但如果封装了这些底层的东西,事情会变得复杂和难以理解。以Asp.net为例,它的定制特性可以使得只要在方法前加上[ajax method]类似这样的标志就可以称为一个异步方法,相信这使得Asp.net的Ajax开发显得更加“高效”或者是“神秘”,而更多的事情则被封装了。同样记住一条,任何对服务器端的请求仅仅是返回纯文本,我们不一定要依赖于封装好的处理过程,而完全可以自己来实现。
观点四:学好JavaScript
在大多数人看来,JavaScript总不是那么一种正规的语言,随便copy一段就碰巧能运行,学过c之类的人,一看也能看懂,而且在浏览器中常常有脚本错误提示,所以潜意识觉得总不能付之以大任。事实上,要学好Ajax,这就完全是一种错误的看法。javascript作为一种脚本语言,其语法的确不是很严格,但并不妨碍其完成诸多复杂的任务,没有JavaScript,就没有Ajax。所以本人强烈建议,学Ajax前,一定要好好研究一番JavaScript,一般来讲,如果能顺利看懂prototype框架的代码(如:prototype-1.3.1.js),你的JavaScript水平就基本过关了。同时对DOM模型也可以算有一个基本的了解。
观点五:Ajax点缀:CSS
用JavaScript控制CSS其实很简单,基本上每个DOM对象都有一个style对象,只要把css属性里的”-”去掉,并让随后的字母变为大写就可以作为属性使用了,例如:element.style.backgroundColor=”#f00″;在css是:选择符 {background-color:#f00}
一口气说这么多,希望对大家有点用处。
标签Tags:
ajax,
ASP,
asp.net,
css,
div,
html,
javascript,
JavaScript&Ajax,
js,
web,
xml,
xmlhttp,
人,
代码,
区别,
对象,
属性,
接口,
数据,
方法,
浏览器,
类,
网络编程,
节点,
获取,
错误,
页面
JavaScript&Ajax, 网络编程
2010年07月26日
by 江小邪
0 comments
上个月我发现许多Web2.0网站大量运用了ajax,但是其中有些很奇怪,因为他们的速度比起前慢了,并且有时候不起作用(在移动设备上),我总结了十条用Ajax的错误(平台无关)
1、 不要通过把整个页面都放在UpdatePanel中更新整个页面。在你运行网页时需要节省时间,不要更新那些可以用javascript and DHTML (DOM)的部分。
2、 要始终记得有这么几种访问者,他们不能用JavaScript或者用的版本比较老的浏览器或者他们对JavaScript支持不好,比如说移动设备。如果这些都不支持,你的访问者能看到什么?
3、 在客户端浏览器缓存相同的请求或者在we服务器端执行缓存。最好的例子是自动完成个下拉菜单,他们的填充在任何时刻都是相同的,一个有错误写法的自动完成的写法可以减慢你的Web服务器(数据库服务器),因为那样会有比起以前用IsPostBack更多地请求。想一下不停的按F5刷新你的网页的情形。如果你有层叠的下拉菜单你就会结算更多地请求。
4、 在你运用CSS或JavaScript时,不要运行,并发的或者运行很长时间的Ajax请求,一般的浏览器只能有两个并发的http连接(我知道可以给变这个,但是默认的还是设为两个)。如果在读取图片的时候由很多Ajax请求的话,速度会变得很慢。
5、 什么时候都用异步调用的方法发送XMLHttpRequest.。如果你要用同步的方法也是没有请问题的,你的浏览器不会因为网络问题或是连接速度慢而冻结的
6、 试着让你的web应用使用一个很慢的网络连接,再尝试用快的TCP/IP连接
7、 你的web应用是作为桌面程序的替代品?你注意观察过一般浏览器在运行你的Web应用一小时,两小时或者几天时内存的使用。不是所有人都有你那样好的机器。
8、 检查在你返回XMLHttpRequest时你的http请求状态代码(status code),那会有一些常见的网络错误像是不可获得的DNS,Http Server error 500 ,你曾经检查过状态代码(status code),它可以告诉你浏览器在一个为连接的模式
9、 试着禁止XMLHttpRequest object!用IE7你能用native object代替ActiveX object,但是你也可以禁止native object。
10、检查你AJAX requests的安全性!你简单的打开了你的数据访问层吗?充分运用FormsAuthentication和PrincipalPermissions。是不是任何人都可以建立一个请求(不只是点击一个链接)?
标签Tags:
ajax,
code,
css,
dhtml,
html,
http请求状态,
ie,
javascript,
JavaScript&Ajax,
server,
status,
web,
web2.0,
xml,
xmlhttp,
人,
代码,
图片,
数据,
数据库,
方法,
更新,
浏览器,
版本,
程序,
网站,
网络编程,
连接,
链接,
错误,
页面
JavaScript&Ajax, 网络编程
2010年07月26日
by 江小邪
0 comments
做一个项目用到Ajax,开始觉得挺好,后来发现一个问题,例如删除一项,恢复之后就不能再接着删除,必须要等一段时间,后来知道是IE缓存的问题。
AJAX缓存页面是一个刚接触AJAX的人一定会遇到的问题,造成这个问题的关键性人物又是IE…
在网上找了好多资料后,总结一下
1:在AJAX请求的页面后加个随机函数,我们可以使用随机时间函数
在javascript发送的URL后加上t=Math.random() ,当然,不是直接把t=Math.random()拷贝到URL后面,应该像这样:URL+”&”+”t=”+Math.random();
2:在XMLHttpRequest发送请求之前加上XMLHttpRequest.setRequestHeader(“If-Modified-Since”,”0″)
一般情况下,这里的XMLHttpRequest不会直接使用,你应该可以找到这样的代码
XXXXX.send(YYYYYY);
那么,就把它变成
XXXXX.setRequestHeader(“If-Modified-Since”,”0″);
XXXXX.send(YYYYYY);
第二种方法感觉挺好。
标签Tags:
ajax,
ie,
javascript,
JavaScript&Ajax,
mod,
url,
xml,
xmlhttp,
人,
代码,
函数,
方法,
网络编程,
页面
JavaScript&Ajax, 网络编程