导航配置mod=1意思离线导航是什么意思

jQuery 实现多级上拉菜单导航_myeclipse,该怎么处理_关于django多线程有关问题解决__脚本百事通
稍等,加载中……
^_^请注意,有可能下面的2篇文章才是您想要的内容:
jQuery 实现多级上拉菜单导航
myeclipse,该怎么处理
关于django多线程有关问题解决
jQuery 实现多级上拉菜单导航
jQuery 实现多级下拉菜单导航JavaScript 实例教程 – jQuery 实现多级下拉菜单导航 链接:/forum.php?mod=viewthread&tid=3087236&reltid=3040304&pre_thread_id=0&pre_pos=2&ext=多级下拉菜单,英文名叫 DropDown Menu。这个效果是我们平时最常见的一个效果之一,也是一个十分实用的一个 JavaScript 特效。例如我的 BlueNight 主题的主导航就使用了多级下拉菜单的这个效果。前端开发的3大知识点:XHTML、CSS 和 JavaScript 这3个方面说起。多级下拉菜单的 XHTML 结构 前端开发的一切基础都是从拥有良好结构的 XHTML 代码说起的,以本站的主导航菜单为例,菜单的 HTML 代码如下:&ul class="menu" id="menu-top-navigation"&
&li class="menu-item"&
&a href="/"&Home&/a&
&li class="menu-item"&
&a href="/category/frontend/"&Frontend&/a&
&ul class="sub-menu"&
&li class="menu-item"&
&a href="/category/frontend/xhtml/"&XHTML&/a&
&li class="menu-item"&
&a href="/category/frontend/css/"&CSS&/a&
&li class="menu-item"&
&a href="/category/frontend/html5/"&HTML5&/a&
&li class="menu-item"&
&a href="/category/frontend/css3/"&CSS 3&/a&
&li class="menu-item has-sub-menu"&
&a href="/category/frontend/javascript/"&JavaScript&/a&
&ul class="sub-menu"&
&li class="menu-item"&
&a href="/category/frontend/jquery/"&jQuery&/a&
&li class="menu-item"&
&a href="/category/frontend/yui/"&YUI&/a&
&li class="menu-item"&
&a href="/category/frontend/dom/"&DOM&/a&
&li class="menu-item"&
&a href="/category/frontend/Ajax/"&Ajax&/a&
&li class="menu-item"&
&a href="/category/frontend/json/"&JSON&/a&
&li class="menu-item"&
&a href="/category/php/"&PHP&/a&
&li class="menu-item has-sub-menu"&
&a href="/category/wordpress/"&WordPress&/a&
&ul class="sub-menu"&
&li class="menu-item"&
&a href="/category/wordpress/wp-themes/"&WP Themes&/a&
&li class="menu-item"&
&a href="/category/wordpress/wp-plugins/"&WP Plugins&/a&
&li class="menu-item"&
&a href="/category/seo/"&SEO&/a&
&li class="menu-item"&
&a href="/category/video/"&Video&/a&
&li class="menu-item"&
&a href="/category/downloads/"&Downloads&/a&
&li class="menu-item"&
&a href="/about-us/"&About Us&/a&
&/li&&/ul&选择合理的 XHTML 标签因为这个效果是一个导航菜单,所以我们应该选择使用 ul 和 li 标签,因为 ul 标签的意思就是一个无序列表。而且是一个多级的菜单,所以我们看到 XHTML 代码使用了多级嵌套的 ul 标签组合。给 XHTML 标签添加语义化的属性/值充分结构化的 XHTML 代码除了选择正确的 XHTML 标签之外,属性值的命名也是有讲究的。注意看上面的 XHTML 代码,主菜单 ul 标签我们使用了 class="menu",而子菜单的 ul 标签我们则使用了 class="sub-menu"。怎么样,光从两个 class 的名称你就看得出主菜单和子菜单的区别了。XHTML 代码的属性/值语义化,名字应该简介易懂,能够表达出显示数据的结构或者类型。另外,我推荐大家采用英文小写加“-”横线链接符的命名方法。“-”在英文中常作单词分割符号,对搜索引擎来说,分开的单词的组合命名方式它也更易于理解。名字取得好的属性值对 SEO 也会产生一定的效果。好了,接着看每个菜单项 li 的属性值,class="menu-item" 和 class="menu-item has-sub-menu"。同样也不用我多解释,class 的名字就很能够说明问题,非常的易懂。.has-sub-menu 就表明了该菜单项是有子菜单的。而且这么写,另外一个作用就是考虑到给含有子菜单的 li 标签添加特殊的样式以区别没有子菜单的菜单项。充分结构化(语义化)的 XHTML 代码要做到可读性好。可读性好,结果就是维护起来会更方便,即使团队里其它的人来接手你的工作,也可以很容易的理解你的代码,继续下面的维护工作。也可以起到减少维护成本,提高开发效率的作用。接下来你还会看到因为 XHTML 结构合理,XHTML 代码的嵌套少,会便于使用 CSS 添加样式,同时也会让 JavaScript 遍历查找 DOM 元素,只需要查找少量的 DOM 节点就可以搞定了。内行看门道,现在看出一个结构良好的 XHTML 代码的作用了吧。多级下拉菜单的 CSS 定位技巧接下来看看要怎么用 CSS 来处理多级下拉菜单的显示的,这里有这3个值得注意的地方:
1.有下子菜单的 li 标签样式应该于没有的不一样,而且一级菜单中有子菜单 li 标签的样式,跟子菜单中有子菜单的 li 的标签又不一样; 2.子菜单显示的位置在 li 标签范围之外,而且一级子菜单和更次级的子菜单的显示位置又不一样;3.子菜单应该盖住下面的区域(banner 和 container 博客文章列表);以下是完整的 CSS 代码:#top-navigation {
margin: 10px auto 600
margin: 0;
.menu-item {
z-index: 2;
margin-left: 3
font-size: 14
width: 115
line-height: 36
list-style-type:
text-align:
.menu .has-sub-menu {
border-top: 3px solid #369;
line-height: 33
.sub-menu .has-sub-menu {
border-top:
line-height: 36
border-right: 3px solid #369;
width: 112
.menu-item a:link, .menu-item a:visited, .menu-item a:hover {
font-weight:
width: 100%;
background-color: #3B3939;
.menu-item a:hover {
color: #009FBC;
background-color: #FFF;
text-decoration:
.menu-item .sub-menu {
z-index: 3;
margin: 0;
box-shadow: 0 3px 10px #333;
width: 115
.sub-menu li {
margin-left: 0;
.sub-menu .sub-menu {
z-index: 4;
给子菜单的 li 标签添加 CSS 样式其实在一开始写 XHTML 代码的时候,就考虑到了这个问题,已经给有子菜单的 li 标签加上了 .has-sub-menu 类。来看看一级菜单的 li 标签的 CSS 样式代码吧:.menu .has-sub-menu {
border-top: 3px solid #369;
line-height: 33
很简单,有一个 3px 的蓝色的上边框,行高则当然也要写成 33px 而非普通的 36px 了(我没有给有下拉菜单做向下箭头的背景图标,如果你喜欢就做成有背景图标的。不过 CSS 会更复杂,或者又要做 sprites 优化性能,我就算了。)。而更次级的子菜单有下拉菜单的 li 标签同样也只是用了 class="has-sub-menu" 的处理,怎么实现右边框是蓝色的呢?.sub-menu .has-sub-menu {
border-top: /* 清除一级子菜单的上边框 */
line-height: 36 /* 让更次级子菜单的行高恢复为 36px */
border-right: 3px solid #369;
width: 112
选择这样的后代选择器,利用它在 CSS 中优先级比之前的要高,覆盖掉一级菜单项的样式。这样以来二级一下的子菜单中有子菜单的 li 的显示样式就是行高为 36px、宽度为112px、右边框为 3px 蓝色。 使用 position 给子菜单定位子菜单的显示位置有2两种情况:第一,一级子菜单在当前菜单 li 的底部显示。第二,一级子菜单下的子菜单则显示在当前菜单 li 标签的右边。说道定位则肯定要使用到 position:relative 和 position: 结合使用了:.menu-item {
z-index: 2;
margin-left: 3
font-size: 14
width: 115
line-height: 36
list-style-type:
text-align:
.menu-item .sub-menu {
z-index: 3;
margin: 0;
box-shadow: 0 3px 10px #333;
width: 115
/* 子菜单不需要像一级菜单那样间隔5个像素排列,所以清除左边距 */
.sub-menu li {
margin-left: 0;
.sub-menu .sub-menu {
z-index: 4;
要让子菜单相对上级菜单的位置显示(也就上级 li 标签的位置显示),那么就一定要给上级的 li 标签设置:position:,这样我们再给子菜单设置 position:,这时子菜单才是相对上级菜单位置开始定位 top 和 left。如果给上级菜单 li 标签设置 position:relative,而直接给子菜单设置 position:,那么子菜单的 定位起始位置则是根据 body 标签的最左上方位置开始计算 top 和 left 值了。这个是 position:relative 和 position: 定位位置关系的基础知识了。温习完了 position 定位的基础知识后,我们又要使用性能低但层级比较高的选择器把二级以下的子菜单定位到当前菜单的右边:.sub-menu .sub-menu {
z-index: 4;
还是利用后代选择器,这样我们就可以在只给子菜单设置相同的 ..sub-menu 类选择器的情况下实现让不同层级的子菜单在不同位置定位显示了。到目前为止,我们已经做好了子菜单的定位,但是正如前面提到的,子菜单在上级菜单 li 标签的区域之外。如何让子菜单可见?细心的你应该发现了,在之前给出的完整的菜单的 CSS 代码中,你没有发现 overflow:,还有我没有设置 li 的 height 值,而只是设置了 line-height:36。这里利用了 overflow 默认值是 auto,同时不设置 height 而是利用 line-height: 36 去模拟 min-height: 36。然后设置 a 标签 display:width: 100%;,让 a 标签在不同层级的 .has-sub-menu 菜单项中自动适应,占满整个 li 标签的显示区域。不错的技巧吧!子菜单在 li 外显示的问题解决了,接下来就是要处理怎么让子菜单超出头部的区域也显示出来,而且要盖住下面的 banner 区域和文章列表。CSS 定位之 z-index 问题分析我干脆用之前转载的文章《CSS 定位之 z-index 问题分析》做为这个章节的标题。因为谈到 position 定位,就必须使用 z-index 来处理层于层之前的遮盖关系(请允许我这么说),具体的知识点就需要大家详细参考《CSS 定位之 z-index 问题分析》、《CSS z-index 属性的使用方法和层级树的概念》和 W3C 的《Positioning schemes》。我这里就直接把我的处理代码给出:.header {
z-index: 2;
padding-bottom: 0;
设置 header 的 overflow:,让子菜单超出 header 的部分可见。而且显式地设置 position:relative 和 z-index:2 后,header 就可以盖住下面的内容。而 .sub-menu 的 z-index 值为3,所以只要 header 可以盖住的内容,.sub-menu 都可以盖住的。OK,CSS 的布局问题都解决了。多级下拉菜单的 JavaScript DOM 编程有了好的 XHTML 代码,有了 CSS 控制菜单的定位问题。JavaScript DOM 编程要处理的事情其实很简单了:鼠标放到有子菜单的 li 标签上,让子菜单 display:。废话几句,千万不要做让 JavaScript 计算上级菜单 li 标签的高度和宽度,然后再让 JavaScript 计算 top 和 left 值。虽然看上去让人觉得这个程序很“智能”,不过我认为这是“智障”,把原本应该让 CSS 处理的问题留给JavaScript 处理。千万别这么做! 看看 JavaScript 实现的完整代码吧:(function($){
$.fn.extend({
dropMenu: function(menuItem, subMenuItem){
var root = $(this), // 首先找到菜单(的根节点)
CLS_HAS_MENU = 'has-sub-menu', isIE = $.browser.msie, // 是否为 IE 浏览器
version = $.browser. // 浏览器的版本
// 没有找到菜单则退出
// root.find(':first') 都是得到 document.getElementById('top-navigation')
if (!root[0]) {
// 默认的菜单标签为 li 标签(选择器)
if (!menuItem) {
menuItem = 'li';
// 默认的子菜单标签为 ul 标签(选择器)
if (!subMenuItem) {
subMenuItem = 'ul';
// $(root).find(menuItem) 找到导航菜单下所有的 li 节点
// 通过 each() 遍历添加相应的处理事件 mouseover,mouseout 和 tab 操作的支持
$(root).find(menuItem).each(function(i, li){
var curMenu = $(li),
// 找到 li 下的第一个 a 标签,添加 tab 键的支持时需要用到的
curLink = curMenu.is('a') ? curMenu : $(curMenu.find('a:first')),
// 找到当前 li 标签下的子菜单
subMenus = $(subMenuItem, curMenu),
// 判断是否有子菜单节点
hasMenu = subMenus.length &= 1,
// 当前 li 标签下的子菜单
curSubMenu = null,
// 当前子菜单的最后一项(a 标签)
curSubMenuLastItem = null,
// 显示子菜单
show = function(){
// show sub menu 发现 IE6 中使用 show() 方无法显示二级以下的子菜单
// 所以很无赖的 hack 了一下
if (!isIE || (isIE && version & 6)) {
curSubMenu.show(200);
curSubMenu.css('display', 'block');
// 隐藏子菜单
hide = function(){
// hide sub menu
if (!isIE || (isIE && version & 6)) {
curSubMenu.hide(150);
curSubMenu.css('display', 'none');
// 只在有子菜单的时候才做相应的处理
if (hasMenu) {
// 无赖 WordPress 的输出没有 .has-sub-menu
// 只要自己手动加上了
curMenu.addClass(CLS_HAS_MENU);
// 找到当前 li 对应的子菜单,而不是把更次级的子菜单都找到
// 不习惯用 subMenus.get(0)
curSubMenu = $(subMenus[0]);
// 当前子菜单的最后一项(a 标签)
curSubMenuLastItem = curSubMenu.find('a:last');
// mouse event
curMenu.hover(show, hide);
// key(tab key) event
// 获得焦点是在当前 li 下的第一个A标签上处理
curLink.focus(show);
// 失去焦点则需要是tab让子菜单的最后一个菜单项都走过了,才关闭子菜单
curSubMenuLastItem.blur(hide);
$('#top-navigation').dropMenu();
})(jQuery);
我的注释已经写的十分清除了,让鼠标划过 li 显示子菜单,离开时隐藏子菜单。jQuery 实现这个效果的代码再简单不过,用 $(li).hover(show,hide) 就实现了,我想大家都知道了。这里我想要讲的处理技巧是如何找到当前菜单的子菜单的处理:// submenus 找到的当前菜单项下所有的子菜单,而并非当前菜单对应层级的子菜单
subMenus = $(subMenuItem, curMenu);
// 找到对应层级的子菜单很简单,第一个子菜单就是对应层级的
curSubMenu = $(subMenus[0]);
结合 XHTML 代码你就会清楚为什么 $(subMenuItem, curMenu); 找到的是当前栏目全部的子菜单(栏目)了。&li class="menu-item"&
&a href="/category/frontend/"&Frontend&/a&
&ul class="sub-menu"&
&li class="menu-item"&
&a href="/category/frontend/xhtml/"&XHTML&/a&
&li class="menu-item"&
&a href="/category/frontend/css/"&CSS&/a&
&li class="menu-item"&
&a href="/category/frontend/html5/"&HTML5&/a&
&li class="menu-item"&
&a href="/category/frontend/css3/"&CSS 3&/a&
&li class="menu-item has-sub-menu"&
&a href="/category/frontend/javascript/"&JavaScript&/a&
&ul class="sub-menu"&
&li class="menu-item"&
&a href="/category/frontend/jquery/"&jQuery&/a&
&li class="menu-item"&
&a href="/category/frontend/yui/"&YUI&/a&
&li class="menu-item"&
&a href="/category/frontend/dom/"&DOM&/a&
&li class="menu-item"&
&a href="/category/frontend/Ajax/"&Ajax&/a&
&li class="menu-item"&
&a href="/category/frontend/json/"&JSON&/a&
可以看到 Frontend 栏目下有两个 .sub-menu(子栏目),而属于它的下一级的子菜单应该是第一个。所以要找到对应的子菜单要这么处理:// 找到对应层级的子菜单很简单,第一个子菜单就是对应层级的
curSubMenu = $(subMenus[0]);另外,为了让看起来更专业些,同时对用户很友好一些,我给这个多级下拉菜单添加了 tab 键切的显示/隐藏菜单的支持,这里的处理技巧需要要说一下:// key(tab key) event
// 获得焦点是在当前 li 下的第一个A标签上处理
curLink.focus(show);
// 失去焦点则需要是tab让子菜单的最后一个菜单项都走过了,才关闭子菜单
curSubMenuLastItem.blur(hide);tab键控制子菜单的隐藏和显示的关键点是要明白获得焦点显示子菜单的 a 标签和失去焦点关闭子菜单的 a 标签不是同一个。看看 XHTML 代码就知道了。&li class="menu-item has-sub-menu"&
&a href="/category/wordpress/"&WordPress&/a&
&ul class="sub-menu"&
&li class="menu-item"&
&a href="/category/wordpress/wp-themes/"&WP Themes&/a&
&li class="menu-item"&
&a href="/category/wordpress/wp-plugins/"&WP Plugins&/a&
&/li&a 标签(WordPress 链接)获得焦点就应该显示它的 .sub-menu 了。而要隐藏子菜单,则应该是在子菜单的最后一个链接( WP Plugin 链接)失去焦点的时候关闭它。所以才需要使用 curSubMenuLastItem = curSubMenu.find('a:last'); 获得当前子菜单的最后一个 a 标签的处理,然后给它绑定失去焦点隐藏子菜单。好了,如何利用 jQuery 实现多级下来菜单到这里就说讲解完了,另外,这个 JavaScript 脚本一开始是给 WordPress 的导航添加多级菜单的支持写的,可以直接用于 WordPress 主题的自定义菜单显示。
myeclipse,该怎么处理
myeclipse求myeclipse的快捷键大全。。。。。------解决方案--------------------http://topic.csdn.net/u//b6f5c08e-5bba--c89b20d42824.html?47565
------解决方案--------------------
Eclipse快捷键设置一般默认情况下,Eclipse ,MyEclipse 的代码提示功能是比Microsoft Visual Studio的差很多的,主要是Eclipse ,MyEclipse本身有很多选项是默认关闭的,要开发者自己去手动配置。如果开发者不清楚的话,就不知道Eclipse ,MyEclipse的代码提示功能一样能像Microsoft Visual Studio的代码提 示功能一样强大。先举个简单的例子说明问题所在,例如在Eclipse ,MyEclipse代码里面,打个foreach,switch等 这些,是无法得到代码提示的(不信自己试试),其他的就更不用说了,而在Microsoft Visual Studio 里面是得到非常友好的代码提示的。实际上,Eclipse ,MyEclipse代码里面的代码提示功能默认的一般 是点“.”,一般是有了点“.”,才会有代码提示。原理:“Auto Activation triggers for java”这个选项就是指触发代码提示的的选项,把“.” 改成“.abcdefghijklmnopqrstuvwxyz(,”的意思,就是指遇到26个字母和.,(这些符号就触发代码提 示功能了。(具体后面有说,放心)增强Eclipse ,MyEclipse 的代码提示功能,具体怎么样来配置?下面开始说步骤(注意本人用的 MyEclipse 6.0.1做讲解):
1. 打开MyEclipse 6.0.1,然后“window”→“Preferences”
2. 选择“java”,展开,“Editor”,选择“Content Assist”。
3. 选择“Content Assist”,然后看到右边,右边的“Auto-Activation”下面的“Auto Activation triggers for java”这个选项。其实就是指触发代码提示的就是“.”这个符号.4. “Auto Activation triggers for java”这个选项,在“.”后加abc字母,方便后面的查找 修改。然后“apply”,点击“OK”。
5. 然后,“File”→“Export”,在弹出的窗口中选择“Perferences”,点击“下一步”。
6. 选择导出文件路径,本人导出到桌面,输入“test”作为文件名,点击“保存”。7. 在桌面找到刚在保存的文件“test.epf”,右键选择“用记事本打开”。
8. 可以看到很多配置MyEclipse 6.0.1的信息
9. 按“ctrl + F”快捷键,输入“.abc”,点击“查找下一个”。
10. 查找到“.abc”的配置信息.
11. 把“.abc”改成“.abcdefghijklmnopqrstuvwxyz(,”,保存,关闭“test.epf”。
12. 回到MyEclipse 6.0.1界面,“File”→“Import”,在弹出的窗口中选择“Perferences”,点击 “下一步”,选择刚在已经修改的“test.epf”文件,点击“打开”,点击“Finish”。该步骤和上面 的导出步骤类似。
13. 最后当然是进行代码测试了。随便新建一个工程,新建一个类。在代码输入switch,foreach等进行 测试。你立即会发现,果然出了提示,而且无论是敲哪个字母都会有很多相关的提示了,很流畅,很方便。总结:“Auto Activation triggers for java”这个选项就是指触发代码提示的的选项,把“.”改成 “.abcdefghijklmnopqrstuvwxyz(,”的意思,就是指遇到26个字母和.,(这些符号就触发代码提示功 能了。 顺便说一下,修改类名,接口名等以不同颜色高亮的,可以这样配置在“java”→“enditor”→ “syntac”,右边展开“java”→“classes”,勾上“Enable”这个选项,选择自己喜欢的颜色即可。 当然还有其他相关的颜色配置。具体就不说啦。其实,在“Preferences”这个东西,有很多可以配置的 东西,使得MyEclipse 优化的,具体的就要各个人根据自己个人喜好去配置了。Eclipse开发经典教程:常用快捷键想成为编程“高手”吗?如果说有捷径的话,不妨花点时间在Eclipse快捷键的使用上。作为一个使用Eclipse进行Java开发的编程“高手”,一些常用的快捷键是必须掌握的,它不但能够大大加快程序编写、调试和定位Bug的速度,还能让领导感觉到你的“打字速度”,何乐而不为呢?尝试一下全键盘操作的魅力吧。
本节将从笔者的亲身经验总结出一些快捷键,并对快捷键进行分类,而且按笔者的喜好进行排列,并加上相关的解释,希望读者能用心去体会。
编辑相关快捷键
Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。
1. 【ALT+/】
此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。
2. 【Ctrl+O】
显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用。
3. 【Ctrl+/】
快速添加注释,能为光标所在行或所选定行快速添加注释或取消注释,在调试的时候可能总会需要注释一些东西或取消注释,现在好了,不需要每行进行重复的注释。
4. 【Ctrl+D】
删除当前行,这也是笔者的最爱之一,不用为删除一行而按那么多次的删除键。
5. 【Ctrl+M】
窗口最大化和还原,用户在窗口中进行操作时,总会觉得当前窗口小(尤其在编写代码时),现在好了,试试【Ctrl+M】快捷键。
查看和定位快捷键
在程序中,迅速定位代码的位置,快速找到Bug的所在,是非常不容易的事,Eclipse提供了强大的查找功能,可以利用如下的快捷键帮助完成查找定位的工作。
1. 【Ctrl+K】、【Ctrl++Shift+K】
快速向下和向上查找选定的内容,从此不再需要用鼠标单击查找对话框了。
2. 【Ctrl+Shift+T】
查找工作空间(Workspace)构建路径中的可找到Java类文件,不要为找不到类而痛苦,而且可以使用“*”、“?”等通配符。
3. 【Ctrl+Shift+R】
和【Ctrl+Shift+T】对应,查找工作空间(Workspace)中的所有文件(包括Java文件),也可以使用通配符。
4. 【Ctrl+Shift+G】
查找类、方法和属性的引用。这是一个非常实用的快捷键,例如要修改引用某个方法的代码,可以通过【Ctrl+Shift+G】快捷键迅速定位所有引用此方法的位置。
5. 【Ctrl+Shift+O】
快速生成import,当从网上拷贝一段程序后,不知道如何import进所调用的类,试试【Ctrl+Shift+O】快捷键,一定会有惊喜。
6. 【Ctrl+Shift+F】
格式化代码,书写格式规范的代码是每一个程序员的必修之课,当看见某段代码极不顺眼时,选定后按【Ctrl+Shift+F】快捷键可以格式化这段代码,如果不选定代码则默认格式化当前文件(Java文件)。
7. 【ALT+Shift+W】
查找当前文件所在项目中的路径,可以快速定位浏览器视图的位置,如果想查找某个文件所在的包时,此快捷键非常有用(特别在比较大的项目中,超实用)。
8. 【Ctrl+L】
定位到当前编辑器的某一行,对非Java文件也有效。
9. 【Alt+←】、【Alt+→】
定位历史记录操作定位
10. 【F3】
快速定位光标位置的某个类、方法和属性。
11. 【F4】
显示类的继承关系,并打开类继承视图。
调试快捷键
Eclipse中有如下一些和运行调试相关的快捷键。
1. 【Ctrl+Shift+B】:在当前行设置断点或取消设置的断点。
2. 【F11】:调试最后一次执行的程序。
3. 【Ctrl+F11】:运行最后一次执行的程序。
4. 【F5】:跟踪到方法中,当程序执行到某方法时,可以按【F5】键跟踪到方法中。
5. 【F6】:单步执行程序。
6. 【F7】:执行完方法,返回到调用此方法的后一条语句。
7. 【F8】:继续执行,到下一个断点或程序结束。
常用编辑器快捷键
通常文本编辑器都提供了一些和编辑相关的快捷键,在Eclipse中也可以通过这些快捷键进行文本编辑。
1. 【Ctrl+C】:复制。
2. 【Ctrl+X】:剪切。
3. 【Ctrl+V】:粘贴。
4. 【Ctrl+S】:保存文件。
5. 【Ctrl+Z】:撤销。
6. 【Ctrl+Y】:重复。
7. 【Ctrl+F】:查找。
其他快捷键
Eclipse中还有很多快捷键,无法一一列举,用户可以通过帮助文档找到它们的使用方式,另外还有几个常用的快捷键如下。
1. 【Ctrl+F6】:切换到下一个编辑器。
2. 【Ctrl+Shift+F6】:切换到上一个编辑器。
3. 【Ctrl+F7】:切换到下一个视图。
4. 【Ctrl+Shift+F7】:切换到上一个视图。
5. 【Ctrl+F8】:切换到下一个透视图。
6. 【Ctrl+Shift+F8】:切换到上一个透视图。
Eclipse中快捷键比较多,可以通过帮助文档找到所有快捷键的使用,但要掌握所有快捷键的使用是不可能的,也没有必要,如果花点时间熟悉本节列举的快捷键,必将会事半功倍。------解决方案--------------------http://topic.csdn.net/u//b6f5c08e-5bba--c89b20d42824.html?47565
------解决方案--------------------百度google一搜一大把
------解决方案--------------------支持楼上
关于django多线程有关问题解决
关于django多线程问题解决Django自带的Development Server作为调试开发时的临时服务器是一个非常方便的工具,因为避免了在还没有代码之前就需要配置一大堆环境的麻烦。
但是此服务器也有一个不足的地方就是它是单线程模式的,也就是同时只能处理一个请求,当需要调试ajax应用时,这就显得非常麻烦了,因为这经常需要同时处理多个请求。
经过搜索,查找,简单的解决方法有以下两种:
1、修改Django自带的Development Server为多线程模式,这其实只需要改几行代码就可以了。(详见/ticket/3357 )
打开文件 django/core/servers/basehttp.py
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
from BaseHTTPServer import BaseHTTPRequestHandler
在所有的 import 语句之后加上以下代码:
Python代码
import BaseHTTPServer, SocketServer
class HTTPServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):
def __init__(self, server_address, RequestHandlerClass=None):
BaseHTTPServer.HTTPServer.__init__(self, server_address, RequestHandlerClass)
是的,这样就可以了。 但是他还有一个小问题就是它不是线程安全的。可能在请求很多时会出现数据不同步,当然,这一般不是问题,因为我们通常只在自己机器上调试时才用Development Server。
2、使用CherryPy 作为 Development Server
在安装好CherryPy 之后,将以下代码保存为文件runservercp.py
Python代码
from django.core.management.base import BaseCommand, CommandError
from optparse import make_option
import os, sys
import cherrypy
from cherrypy import wsgiserver
class Command(BaseCommand):
option_list = BaseCommand.option_list + (
make_option('--noreload', action='store_false', dest='use_reloader', default=True,
help='Tells Django to NOT use the auto-reloader.'),
make_option('--adminmedia', dest='admin_media_path', default='',
help='Specifies the directory from which to serve admin media.'),
help = "Starts a lightweight Web server for development."
args = '[optional port number, or ipaddr:port]'
requires_model_validation = False
def handle(self, addrport='', *args, **options):
import django
from django.core.servers.basehttp import AdminMediaHandler
from django.core.handlers.wsgi import WSGIHandler
raise CommandError('Usage is runservercp %s' % self.args)
if not addrport:
port = '8000'
addr, port = addrport.split(':')
except ValueError:
addr, port = '', addrport
if not addr:
addr = '127.0.0.1'
if not port.isdigit():
raise CommandError("%r is not a valid port number." % port)
use_reloader = options.get('use_reloader', True)
admin_media_path = options.get('admin_media_path', '')
shutdown_message = options.get('shutdown_message', '')
quit_command = (sys.platform == 'win32') and 'CTRL-BREAK' or 'CONTROL-C'
def inner_run():
from django.conf import settings
from django.utils import translation
print "\nValidating models..."
self.validate(display_num_errors=True)
print "\nDjango version %s, using settings %r" % (django.get_version(), settings.SETTINGS_MODULE)
print "Development server is running at http://%s:%s/" % (addr, port)
print "Quit the server with %s." % quit_command
translation.activate(settings.LANGUAGE_CODE)
path = admin_media_path or django.__path__[0] + '/contrib/admin/media'
handler = AdminMediaHandler(WSGIHandler(), path)
cherrypy.config.update({
'server.socket_host': addr,
'server.socket_port': int(port),
'engine.autoreload_on':
use_reloader
cherrypy.tree.graft(handler, '/')
cherrypy.engine.start()
cherrypy.engine.block()
if shutdown_message:
print shutdown_message
cherrypy.engine.exit()
inner_run()
将该文件放到djang源代码目录 django\core\management\commands 下,这样运行命令
python manage.py runservercp
时就使用了CherryPy 作为服务器了,其中命令名是根据文件的名字而定的,因为该文件保存为runservercp.py,所以命令名为 runservercp。
另外放在django的源代码目录的好处是所有的django project都可以使用该命令使用到CherryPy 。
另外一种放置方式是新建一个app,在该app下新建package management,再在该package下建另一package commands,将该文件放在commands 目录下(可参考django\contrib\auth 应用),同时在settings.py 中的 INSTALLED_APPS 加上该app,那么该project 就可以使用该命令了。其他project不受影响。
如果您想提高自己的技术水平,欢迎加入本站官方1号QQ群:&&,&&2号QQ群:,在群里结识技术精英和交流技术^_^
本站联系邮箱:

我要回帖

更多关于 我的世界mod是什么 的文章

 

随机推荐