小编Nic*_*ynt的帖子

禁用HTML元素上的拖放?

我正在开发一个Web应用程序,我正在尝试实现一个功能齐全的窗口系统.现在它进展顺利,我只遇到一个小问题.有时当我去拖动我的应用程序的一部分(通常是我的窗口的角落div,它应该触发调整大小操作)时,Web浏览器变得聪明并认为我的意思是拖放一些东西.最终结果,我的操作被搁置,而浏览器执行拖放操作.

是否有一种简单的方法来禁用浏览器的拖放?理想情况下,我希望能够在用户点击某些元素时关闭它,但重新启用它,以便用户仍然可以在我的窗口内容上使用浏览器的常规功能.我正在使用jQuery,虽然我无法找到它浏览文档,但如果你知道一个纯粹的jQuery解决方案,那就太棒了.

简而言之:我需要在用户按下鼠标按钮时禁用浏览器文本选择和拖放功能,并在用户释放鼠标时恢复该功能.

javascript css jquery webbrowser-control

98
推荐指数
5
解决办法
17万
查看次数

如何让Makefile自动重建包含已修改头文件的源文件?(在C/C++中)

我有以下makefile用于构建我正在处理的程序(实际上是内核).它从头开始,我正在学习这个过程,所以它并不完美,但我认为它在这一点上足够强大,因为我在编写makefile时的经验水平.

AS  =   nasm
CC  =   gcc
LD  =   ld

TARGET      =   core
BUILD       =   build
SOURCES     =   source
INCLUDE     =   include
ASM         =   assembly

VPATH = $(SOURCES)

CFLAGS  =   -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-functions \
            -nostdinc -fno-builtin -I $(INCLUDE)
ASFLAGS =   -f elf

#CFILES     =   core.c consoleio.c system.c
CFILES      =   $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
SFILES      =   assembly/start.asm

SOBJS   =   $(SFILES:.asm=.o)
COBJS   =   $(CFILES:.c=.o)
OBJS    =   $(SOBJS) $(COBJS)

build : $(TARGET).img

$(TARGET).img : $(TARGET).elf
    c:/python26/python.exe concat.py stage1 stage2 pad.bin core.elf …
Run Code Online (Sandbox Code Playgroud)

dependencies gcc makefile header

86
推荐指数
4
解决办法
8万
查看次数

AJAX和浏览器后退按钮

我在www.darknovagames.com上运行了一个基于浏览器的游戏.最近,我一直在努力使用CSS重新格式化网站,尝试根据HTML标准验证其所有页面.

我一直在想着让左边的AJAX导航菜单进入页面的想法(而不是每次都将用户带到一个单独的页面,需要重新加载标题和导航栏,这几乎不会改变)和我知道如果我这样做,我可能会破坏浏览器中的前进/后退按钮.我想我的问题是,我应该继续使用AJAX网站,因此要求用户使用网站导航来玩游戏,还是应该离开现在的网站,并使用标准的超链接和导航的东西?

我猜我猜的原因是我在网站上建立了一个论坛系统,很多时候我想把它说到论坛里的特定话题.

我也愿意接受建议.是否有标准(最好没有传统框架)的方式只使网站的主体区域重新加载,同时仍然更改URL,以便用户可以书签和转发/返回等?这也可能解决我的问题.我只是在这里要求最好的解决方案,而不是特定问题的答案.^ _ ^

谢谢

html javascript navigation ajax

32
推荐指数
4
解决办法
3万
查看次数

PHP中的file_exist()是一个非常昂贵的操作吗?

我正在为我正在设计的论坛引擎添加头像,我正在讨论是否要做一些简单的事情(论坛图片命名为.png)并使用PHP在显示之前检查文件是否存在,或者做一些事情有点复杂(但不多)并使用数据库字段来包含要显示的图像的名称.

我更愿意亲自使用file_exists()方法,因为如果当前的那个(默认)还没有存在,那么我可以轻松地回归到"默认"虚拟形象,并且它很容易实现代码.但是,我担心性能,因为每个用户在论坛阅读页面上每页面显示一次就会运行一次.所以我想知道,PHP中的file_exists()函数会导致在高流量条件下导致显着性能下降的任何重大减速吗?

如果不是,那很好.如果是这样,您对跟踪用户上传图像的替代方案有何看法?谢谢!

PS:我可以看到的代码差异是文件检查版本允许文件进行通话,而数据库表单信任数据库是准确的并且不打算检查.(它只是一个传递给浏览器的URL.)

php performance

16
推荐指数
3
解决办法
1万
查看次数

如何使用JavaScript临时禁用文本选择?

这是一个特定问题,所以我会说得对.

我正在为一个Web应用程序的一部分做一个简短而简单的拖放例程,虽然拖放位工作正常,但在操作过程中该网站变得非常丑陋,因为浏览器仍然执行默认操作并且工作正常关于文本选择.

我尝试了一些主要涉及从mousedown或click事件中返回false的解决方案,虽然它们在某些浏览器中禁用了文本选择,但它们似乎也完全禁用了mouseup事件,破坏了脚本的"drop"位并留下了这个鼠标悬浮在鼠标周围 - 不好玩.

我真的不希望文本选择完全消失,我只是想建议浏览器......拖动时不要这样做,如果这有意义的话.由于我知道受影响的区域(涉及iframe),我可以轻松地将属性应用于受影响的元素等.如果需要,我可以发布代码,但我正在寻找更多的通用解决方案.由于这只是一个美学的东西,我正在寻找适用于大多数浏览器的修复程序,它并不是那么重要.

谢谢!

html javascript drag-and-drop behavior

16
推荐指数
1
解决办法
1万
查看次数

x86组件上的保护模式键盘访问

我正在为键盘输入工作,我正在开发一个非常基本的内核,而且我完全卡住了.我似乎无法在网上找到任何可以向我显示我需要知道的信息.

我的内核现在正在保护模式下运行,所以我无法使用实模式键盘例程而不会跳转到实模式和后退,这是我试图避免的.我希望能够从保护模式访问我的键盘.有谁知道如何做到这一点?到目前为止我唯一发现的是它涉及使用输入/输出端口直接与控制器通信,但除此之外我感到难过.当然,这不是经常出现的事情.通常,Assembly教程假设您正在运行下面的操作系统.

我是x86程序集的新手,所以我只是在寻找一些好的资源来处理来自保护模式的标准硬件.我正在用NASM编译汇编源代码并将其链接到用DJGPP编译的C源代码.有什么建议?

keyboard x86 kernel protected-mode osdev

15
推荐指数
1
解决办法
6623
查看次数

我应该为网站支持的标准"最低"分辨率是多少?

重复:

推荐的网站分辨率(宽度和高度)?

我倾向于认为1024x768是现代网络浏览器运行的最低屏幕分辨率,但我担心在商业网站上使用此解决方案时,因为我觉得我可能会伤害那些被困在一些较小的东西的人老.实际上,我问,我希望我的网站在浏览器"最大化"时能够完美运行的最低屏幕分辨率是多少?

resolution

12
推荐指数
2
解决办法
3万
查看次数

除了malloc/free之外,程序还需要操作系统提供其他任何东西吗?

对于我正在研究的操作系统,我正在设计内核(我将实际上称之为"核心"只是为了与众不同,但它基本相同).如果我无法完成多任务,内存管理和其他基本操作,那么操作系统本身的细节就无关紧要了,所以我需要先解决这个问题.我有一些关于设计malloc例程的任务.

我认为malloc()要么是内核本身的一部分(我倾向于这个),要么是程序的一部分,但是我将不得不编写自己的C标准库实现方式,所以我写了一个malloc.在这方面我的问题实际上相当简单,C(或C++)如何管理它的堆?

我在理论类中一直被教导的是,堆是一个不断扩展的内存块,从指定的地址开始,并且在很多方面表现得像堆栈一样.通过这种方式,我知道在全局范围内声明的变量在开头,并且更多的变量被"推"到堆上,因为它们在各自的作用域中声明,超出作用域的变量只留在内存空间中,但是该空间被标记为空闲,因此如果需要,堆可以扩展更多.

我需要知道的是,C实际上如何以这种方式处理动态扩展堆?编译的C程序是否自己调用malloc例程并处理自己的堆,还是需要为它提供自动扩展的空间?另外,C程序如何知道堆的开始位置?

哦,我知道相同的概念适用于其他语言,但我希望任何示例都在C/C++中,因为我对这种语言最为满意.我也不想担心其他事情,比如堆栈,因为我认为我能够自己处理这样的事情.

所以我想我真正的问题是,除了malloc/free(处理获取和释放页面本身等)之外,程序是否需要操作系统提供其他任何东西?

谢谢!

编辑我更感兴趣的是C如何使用malloc与堆相关而不是在malloc例程本身的实际工作中.如果它有帮助,我在x86上这样做,但C是交叉编译器所以它应该没关系.^ _ ^

进一步编辑:我理解我可能会对术语感到困惑.我被教导说"堆"是程序存储诸如全局/局部变量之类的东西.我习惯于在汇编编程中处理"堆栈",我只是意识到我可能意味着相反.对我的一点研究表明,"堆"更常用于指代程序为自己分配的总内存,或者操作系统提供的内存页面的总数(和顺序).

那么,考虑到这一点,我如何处理不断扩大的堆栈?(看来我的C理论课有点......有缺陷.)

heap malloc operating-system kernel osdev

10
推荐指数
2
解决办法
5324
查看次数

设置IRQ映射

我正在按照几个教程和参考试图设置我的内核.我在一个没有解释它的教程中遇到了一些不熟悉的代码.这是我告诉的代码映射16 IRQs (0-15)到ISR位置的代码32-47:

void irq_remap(void)
{
    outportb(0x20, 0x11);
    outportb(0xA0, 0x11);
    outportb(0x21, 0x20);
    outportb(0xA1, 0x28);
    outportb(0x21, 0x04);
    outportb(0xA1, 0x02);
    outportb(0x21, 0x01);
    outportb(0xA1, 0x01);
    outportb(0x21, 0x0);
    outportb(0xA1, 0x0);
}
Run Code Online (Sandbox Code Playgroud)

代码outportb()如下,但我已经清楚地了解它的作用:

void outPortB(unsigned short port, unsigned char data)
{
    __asm__ __volatile__ ("outb %1, %0" : : "dN" (port), "a" (data));
}
Run Code Online (Sandbox Code Playgroud)

我应该提一下,这是在受保护模式下的x86架构上.这个源代码工作正常,我理解它的作用,但我不明白它是如何做到的.有人可以向我解释这里发生了什么,所以如果我需要扩展这个,我会知道我在做什么吗?

x86 assembly kernel irq osdev

9
推荐指数
1
解决办法
3130
查看次数

SMP多线程如何共享内存和中断?

我正在为我的内核做输入缓冲区的工作,我有一些问题.在双核机器上,我知道可以同时运行多个"进程".我不知道的是操作系统和各个程序如何保护数据中的冲突.

关于这个主题,我想知道两件事:

(1)中断发生在哪里?它们是否保证在一个核心而不是另一个核心上发生,并且可以用来确保一个核心上的实时操作不会被文件IO中断,这可以在另一个核心上处理吗?(我逻辑上假设中断会发生在第一个核心上,但总是如此,你会怎么说?或者每个核心都有自己的中断设置?这不会导致核心可以同时对同一个中断作出反应,可能以不同的方式?)

(2)双核处理器如何处理操作码内存冲突?如果一个内核正在读取内存中的地址,而另一个内核正在写入内存中同一个地址的同一时间,会发生什么?抛出异常,还是读取值?(我假设写入会以任何一种方式工作.)如果读取一个值,它是否保证在碰撞时是旧值还是新值?

我理解程序应该理想地编写以避免这些并发症,但操作系统肯定不能指望,并且需要能够处理此类事件而不会窒息.

x86 kernel multicore osdev

9
推荐指数
2
解决办法
3620
查看次数