小编Mar*_*scu的帖子

LOCK_SH如何工作?

我正在研究PHP中的群体机制,我很难理解LOCK_SH模式的功能.我在一个网站上读到它锁定文件,以便其他脚本不能写入,但他们可以从中读取.但是,以下代码似乎没有按预期工作:在file1.php我有:

$fp = fopen('my_file.txt','r');

flock($fp, LOCK_SH);
sleep(20);
flock($fp, LOCK_UN);
Run Code Online (Sandbox Code Playgroud)

在file2.php我有

$fp = fopen('my_file.txt','a');
fwrite($fp,'test');
Run Code Online (Sandbox Code Playgroud)

我运行第一个锁定文件20秒的脚本.在锁定到位的情况下,我运行file2.php,它立即完成执行,之后,当我打开'my_file.txt'时,字符串'test'被附加到它上面(虽然'file1.php'仍在运行).我尝试更改'file2.php',以便它可以从锁定的文件中读取并从中红色,没有任何问题.很显然......'LOCK_SH'接缝无所事事.但是,如果我使用LOCK_EX是,它会锁定文件,没有脚本可以写入或读取文件.我正在使用Easy PHP并在Windows 7下运行它.

php flock

8
推荐指数
2
解决办法
4133
查看次数

事件的 event.returnValue = false

我正在用 Javascript 开发一个滚动条。除了一个问题外,一切正常。我注意到,在拖动滚动条时,如果将鼠标移动到正在滚动的上下文上,则会选择内容。我不希望这种情况发生,因此我使用了preventDefault事件对象中的方法,该方法非常适合 IE9 和其他现代浏览器。但在IE7和IE8上,问题依然存在。我做了一些搜索,发现我应该将returnValue事件对象的参数设置为 false。但问题仍然存在。另外,如果我写alert(window.event.returnValue)它就会弹出undefined

scrollbar.onmousedown = function (event) {
    if (typeof event == 'undefined') event = window.event;
    if (typeof event.preventDefault != 'undefined') event.preventDefault();
    event.returnValue = false;
    // do some stuff
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

javascript dom-events

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

标签 统计

dom-events ×1

flock ×1

javascript ×1

php ×1