当前位置:  编程技术>移动开发
本页文章导读:
    ▪ngnix wiki 装配过程        ngnix wiki 安装过程 http://wiki.nginx.org/Chshttp://blog.s135.com/nginx_php_v6/Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问.........
    ▪ iframe的属性:document跟Document以及Document的属性和iframe在各个浏览器获得内部文档的写法        iframe的属性:document和Document以及Document的属性和iframe在各个浏览器获得内部文档的写法 .document引用到是的 iframe所在页面对象,.Document (大写D),才能引用到iframe内含对象<html> <head>.........
    ▪ NSRunLoop概述跟原理[转]       NSRunLoop概述和原理[转] 1.什么是NSRunLoop?我们会经常看到这样的代码:- (IBAction)start:(id)sender { pageStillLoading = YES; [NSThread detachNewThreadSelector:@selector(loadPageInBackground:)toTarget:self withObject:nil]; [pr.........

[1]ngnix wiki 装配过程
    来源: 互联网  发布时间: 2014-02-18
ngnix wiki 安装过程
http://wiki.nginx.org/Chs

http://blog.s135.com/nginx_php_v6/

Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过三年了。Igor 将源代码以类BSD许可证的形式发布。

在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx 0.8.46 + PHP 5.2.14 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。

为什么Nginx的性能要比Apache高得多?这得益于Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型。目前Linux下能够承受高并发访问的Squid、Memcached都采用的是epoll网络I/O模型。

  处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效。下面用一个比喻来解析Apache采用的select模型和Nginx采用的epoll模型进行之间的区别:

  假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来找你。select版宿管大妈就会带着你的朋友挨个房间去找,直到找到你为止。而epoll版宿管大妈会先记下每位同学的房间号,你的朋友来时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼找人。如果来了10000个人,都要找自己住这栋楼的同学时,select版和epoll版宿管大妈,谁的效率更高,不言自明。同理,在高并发服务器中,轮询I/O是最耗时间的操作之一,select和epoll的性能谁的性能更高,同样十分明了。

---------------------------------
安装包或者编译时/sbin/ldconfig出错的解决方法
在安装rpm包或者编译时报错
/sbin/ldconfig: /usr/lib/libmcrypt.so.4 is not a symbolic link

解决办法如下:

#ln -sf /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4




    
[2] iframe的属性:document跟Document以及Document的属性和iframe在各个浏览器获得内部文档的写法
    来源: 互联网  发布时间: 2014-02-18
iframe的属性:document和Document以及Document的属性和iframe在各个浏览器获得内部文档的写法
.document引用到是的 iframe所在页面对象,
.Document (大写D),才能引用到iframe内含对象
<html>
<head>
<script>
function SetCwinHeight(obj)
{
// alert(obj.document.getElementById("tDiv").innerText);//可以获得当前页面id为tDiv的div的值
 alert(obj.Document.all.tDiv.innerText);
//这个可以获得text.html里面id为tDiv的div的值、、、
}
</script>
</head>
<body>
<iframe src="/blog_article/test.html" onload="SetCwinHeight(this);" width="600px' id="myframe" 
name="myframe">
</iframe>
<div id="tDiv">
tdiv
</div>
</body>
</html
>
test.html
...
<div id="tDiv" name="tDiv">sdiv</div>
...

下面是兼容ie,ff。chome等的写法
、
function SetCwinHeight()
{
  var obj=document.getElementsByTagName("iframe")[0];
 // var obj2=document.getElementById("myframe");//chome和firefox不支持id取iframe
  //alert(obj2);
  var str="";
  var cwin=obj;
  var sobj=null;
  if (document.getElementById){
    if (cwin && !window.opera){
      if (cwin.contentDocument){
       sobj = cwin.contentDocument; //FF NS
       alert("ff or chome");
       }
      else if(cwin.Document){
        sobj = cwin.Document;//IE
        alert("ie");
        }
     }
     else{ 
        if(cwin.contentWindow.document){
        sobj = cwin.contentWindow.document;//Opera
	    alert("opera ");
        }
        
     }
   }
    for(i in sobj){
     str+=i+"<br/>";
    } 
    document.write(str);
   
}


另外iframe.Doucment的属性还有
引用
namespaces
lastModified
parentNode
nodeType
fileCreatedDate
onbeforeeditfocus
bgColor
oncontextmenu
onrowexit
embeds
scripts
onactivate
mimeType
alinkColor
onmousemove
onselectstart
oncontrolselect
body
protocol
onkeypress
onrowenter
onmousedown
vlinkColor
URL
onreadystatechange
doctype
onbeforedeactivate
applets
fileModifiedDate
onmouseover
dir
media
defaultCharset
firstChild
plugins
onafterupdate
ondragstart
oncellchange
cookie
documentElement
nextSibling
nameProp
referrer
ondatasetcomplete
onmousewheel
onerrorupdate
onselectionchange
lastChild
ondblclick
onkeyup
location
forms
title
onrowsinserted
previousSibling
compatMode
onmouseup
onkeydown
onrowsdelete
onfocusout
fgColor
ondatasetchanged
onmouseout
parentWindow
nodeName
onpropertychange
onstop
onhelp
linkColor
onbeforeactivate
images
readyState
frames
all
onbeforeupdate
onclick
childNodes
onfocusin
anchors
selection
fileUpdatedDate
domain
security
fileSize
ownerDocument
ondataavailable
styleSheets
nodeValue
attributes
activeElement
implementation
links
URLUnencoded
ondeactivate

    
[3] NSRunLoop概述跟原理[转]
    来源: 互联网  发布时间: 2014-02-18
NSRunLoop概述和原理[转]
1.什么是NSRunLoop?
我们会经常看到这样的代码:

- (IBAction)start:(id)sender
{
pageStillLoading = YES;
[NSThread detachNewThreadSelector:@selector(loadPageInBackground:)toTarget:self withObject:nil];
[progress setHidden:NO];
while (pageStillLoading) {
[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
}
[progress setHidden:YES];
} 


这段代码很神奇的,因为他会“暂停”代码运行,而且程序运行不会因为这里有一个while循环而受到影响。在[progress setHidden:NO]执行之后,整个函数想暂停了一样停在循环里面,等loadPageInBackground里面的操作都完成了以后才让[progress setHidden:YES]运行。这样做就显得简介,而且逻辑很清晰。如果你不这样做,你就需要在loadPageInBackground里面表示load完成的地方调用[progress setHidden:YES],显得代码不紧凑而且容易出错。
那么具体什么是NSRunLoop呢?其实NSRunLoop的本质是一个消息机制的处理模式。如果你对vc++编程有一定了解,在windows中,有一系列很重要的函数SendMessage,PostMessage,GetMessage,这些都是有关消息传递处理的API。但是在你进入到Cocoa的编程世界里面,我不知道你是不是走的太快太匆忙而忽视了这个很重要的问题,Cocoa里面就没有提及到任何关于消息处理的API,开发者从来也没有自己去关心过消息的传递过程,好像一切都是那么自然,像大自然一样自然?在Cocoa里面你再也不用去自己定义WM_COMMAD_XXX这样的宏来标识某个消息,也不用在switch-case里面去对特定的消息做特别的处理。难道是Cocoa里面就没有了消息机制?答案是否定的,只是Apple在设计消息处理的时候采用了一个更加高明的模式,那就是RunLoop。

2. NSRunLoop工作原理
接下来看一下NSRunLoop具体的工作原理,首先是官方文档提供的说法,看图:



通过所有的“消息”都被添加到了NSRunLoop中去,而在这里这些消息并分为“input source”和“Timer source” 并在循环中检查是不是有事件需要发生,如果需要那么就调用相应的函数处理。为了更清晰的解释,我们来对比VC++和iOS消息处理过程。

VC++中在一切初始化都完成之后程序就开始这样一个循环了(代码是从户sir mfc程序设计课程的slides中截取):


 int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR  lpCmdLine,int nCmdShow){
...
while (GetMessage(&amp;msg, NULL, 0, 0)){
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &amp;msg)){
TranslateMessage(&amp;msg);
DispatchMessage(&amp;msg);
}
}
} 


可以看到在GetMessage之后就去分发处理消息了,而iOS中main函数中只是调用了UIApplicationMain,那么我们可以介意猜出UIApplicationMain在初始化完成之后就会进入这样一个情形:

int UIApplicationMain(...){
...
while(running){
[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
}
...
} 


所以在UIApplicationMain中也是同样在不断处理runloop才是的程序没有退出。刚才的我说了NSRunLoop是一种更加高明的消息处理模式,他就高明在对消息处理过程进行了更好的抽象和封装,这样才能是的你不用处理一些很琐碎很低层次的具体消息的处理,在NSRunLoop中每一个消息就被打包在input source或者是timer source中了,当需要处理的时候就直接调用其中包含的相应对象的处理函数了。所以对外部的开发人员来讲,你感受到的就是,把source/timer加入到runloop中,然后在适当的时候类似于[receiver action]这样的事情发生了。甚至很多时候,你都没有感受到整个过程前半部分,你只是感觉到了你的某个对象的某个函数调用了。比如在UIView被触摸时会用touchesBegan/touchesMoved等等函数被调用,也许你会想,“该死的,我都不知道在那里被告知有触摸消息,这些处理函数就被调用了!?”所以,消息是有的,只是runloop已经帮你做了!为了证明我的观点,我截取了一张debug touchesBegan的call stack,有图有真相:




    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
javascript开源软件 iis7站长之家
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3