小编Rae*_*kye的帖子

节点js/Express js相对路径(点或__dirname或没有任何前缀)?

我在看的NodeJS/expressjs和看到不同的教程请使用__diranme + "/my_folder","./my_folder"或只"my_folder".

例子:

app.use("/static", express.static(__dirname + "/my_folder"));
app.use("/static", express.static("./my_folder"));
app.use("/static", express.static("my_folder"));
Run Code Online (Sandbox Code Playgroud)

我尝试了所有这些,他们似乎都工作; 我应该将哪一个用于相对路径?

我也看到了require('./my_file.js')require('my_file').有区别吗?我该怎么用?

node.js express

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

Java https代理(使用https.proxyPort和https.proxyHost)

我正在制作一个依赖于设置http.proxyPort和的Java应用程序http.proxyHost.有两个过程:一个是常规程序,另一个是代理.我有一个简单的套接字监听器http.proxyPort(我控制).这很简单

while (true) {
    try {
    Socket connection = server.accept();

    Handler handler = new Handler(connection);
    handler.start();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

所以每当"进程1"发出一个http请求时 - 就像

URL yahoo = new URL("http://www.google.ca/");
URLConnection yc = yahoo.openConnection();
System.out.println(yc.getClass().getName());
BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
Run Code Online (Sandbox Code Playgroud)

它通过代理.现在如果客户端使用HTTPS协议怎么办?喜欢用https://google.ca吗?有一个属性https.proxyPorthttps.proxyHost,但我从字面上一直试图个月(开启和关闭,这不是太重要),没有运气.我已经阅读了一堆线程(我会在最后列出一些,所以你知道我已经做了一些事情).

我迄今为止最接近的尝试:服务器

try {
    System.setProperty("javax.net.ssl.keyStore", "test.jks");
    System.setProperty("javax.net.ssl.keyStorePassword", "2520xe");

    SSLServerSocketFactory sslserversocketfactory =
            (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
    SSLServerSocket sslserversocket =
            (SSLServerSocket) sslserversocketfactory.createServerSocket(9999);
    System.out.println("Ready");
    SSLSocket sslsocket = (SSLSocket) sslserversocket.accept();

    InputStream …
Run Code Online (Sandbox Code Playgroud)

java https proxy

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

动态视口

我正在制作一个主要面向iOS的网络应用程序.我想让它在横向和纵向中工作,就好像它是一个原生应用程序(所以没有缩放).我在设置时找到了

<meta name="viewport" content="width = device-width, height = device-height, maximum scale = 1.0, minimum-scale = 1.0">
Run Code Online (Sandbox Code Playgroud)

适用于肖像; device-height是纵向的全高,设备宽度是纵向的全宽.但是,当设备旋转到横向时,Safari仍会尝试在新的横向宽度上强制执行原始宽度(320)(放大320到480).我试过像动态重置视口一样

document.getElementById("viewport").setAttribute('content', 'width = ' + maxWidth + ', height = ' + maxHeight + ', maximum-scale = 1.0, minimum-scale = 1.0');
Run Code Online (Sandbox Code Playgroud)

其中maxHeight和maxWidth是重定向后的新高度/宽度比例,但Safari给出了"undefined; TypeError:"null"不是对象"错误.

我不想为1,以指定每个条件的不同样式表(iphone屏幕,iPhone的Retina屏幕,iPad和iPad上可能很快视网膜)我想保留它通用2.我想它在其他原生工作浏览器也是3.我很懒

所以我希望我有意义......任何人都可以帮助我吗?基本上我想在运行时更改视口以匹配横向/纵向高度.谢谢

编辑:解决方案我正在使用getElementById,但默认情况下viewport没有ID.所以我只是添加了它,它现在有效.

<meta name="viewport" id="viewport" content="width = device-width, height = device-height, maximum scale = 1.0, minimum-scale = 1.0">
Run Code Online (Sandbox Code Playgroud)

但是,它第一次呈现页面(onload)时没有正确设置它.所以我在页面底部添加了一个setOrientation(),以便在页面完全加载设置方向(第一次)(当将视口设置为窗口大小onload时,它似乎有一些时髦的尺寸).

该解决方案可供稍后对任何可能对此感兴趣的人参考.

谢谢大家!

javascript css dynamic viewport ios

11
推荐指数
0
解决办法
2万
查看次数

使用动画同时隐藏UINavBar和UITabBar

编辑:我将奖金授予约翰,因为他在答案中付出了很多努力,并且无论如何都会得到它,但仍然没有可行的解决方案.我仍在寻找答案,如果有人知道如何做到这一点,我将不胜感激.

我想在我的应用程序中添加一个"最大化"按钮,隐藏导航和标签栏.导航栏和标签栏应平滑地滑入/滑出,内部/内容视图也应以与导航栏和标签栏相同的速率展开和缩小.

我用于[self.navigationController setNavigationBarHidden: YES/NO animated: YES];导航栏并找到了这个帖子如何隐藏uitabbarcontroller以隐藏tabbar.

UITabBar类扩展:

- (void) setTabBarHidden:(BOOL)hidden animated:(BOOL)animated {
    CGRect screenRect = [[UIScreen mainScreen] bounds];

    float screenHeight = screenRect.size.height;
    if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)) {
        screenHeight = screenRect.size.width;
    }
    if (!hidden) {
        screenHeight -= self.tabBar.frame.size.height;
    }
    [UIView animateWithDuration: (animated ? UINavigationControllerHideShowBarDuration : 0) animations: ^{
        for (UIView* each in self.view.subviews) {
            if (each == self.tabBar) {
                [each setFrame: CGRectMake(each.frame.origin.x, screenHeight, each.frame.size.width, each.frame.size.height)];
            } else {
                [each setFrame: CGRectMake(each.frame.origin.x, each.frame.origin.y, each.frame.size.width, screenHeight)];
            }
        } …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch core-animation objective-c uitabbarcontroller

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

了解UITableView dequeueReusableCellWithIdentifier - 即使在第一次调用时也返回单元格

我无法理解它是如何工作的.我已经阅读了很多关于它的线程 - 例如UITableView dequeueReusableCellWithIdentifier Theory以及dequeueReusableCellWithIdentifier:如何工作?.

但是,我的UITableView每次都会成功地将一个单元格出列(它永远不会为零),即使它首次加载也是如此.我的印象是类似的单元格应该使用相同的标识符,因此您只需要更改必要的内容.

因为

if (!cell) {
    NSLog(@"New cell");
    cell = [[UITableViewCell alloc] initWithStyle:someStyle reuseIdentifier:someIdentifier];
}
Run Code Online (Sandbox Code Playgroud)

永远不会被调用,我不确定我应该如何处理具有不同样式的同一个表中的单元格,因为样式只能在初始化程序中设置.

我还尝试使用不同的单元格标识符,以确保它不会重用来自不同表格或其他内容的单元格.我正在注册这些标识符[tableView registerClass: forCellReuseIdentifier:]

如果我理解,这个方法应该只返回先前创建的已经移出屏幕的单元格(隐藏,即可以重复使用).那么为什么它第一次被调用时会返回一个单元格呢?


编辑:所以混淆是使用[tableView dequeueReusableCellWithIdentifier: forIndexPath:]而不是[tableView dequeueReusableCellWithIdentifier:](第一个需要注册标识符,第二个将返回nil,如果没有可用 - 我上面所期望的行为).

但是,我注意到当我更改要使用的代码时[tableView dequeueReusableCellWithIdentifier:],它会创建一个新单元格,其contentView.frame宽度为320(全宽).之前,当我这样做时dequeue...forIndexPath,它将给出302的宽度,或者单元格的视觉/"实际"宽度.为什么是这样?

另外,有没有办法指定重新注册的UITableViewCells的样式?


解决方案:所以我发现这个线程UITableView cell.contentView.bounds.size.width使用Cell Reuse进行更改,当你将autoresizingmask设置为UIViewAutoresizingFlexibleLeftMargin时,它会在你尝试进行相对定位时修复(contentView宽度最初是全宽度) ,但是当你呈现它时它缩小了,所以如果你做正确的计算,它仍然会正常显示).

我在右侧定位了一个UISwitch - 当我设置自动调整遮罩时,它在第一次显示时工作,但在我切换时移动了另外~20个像素.我不知道是什么造成了这个额外的转变,但我最终通过简单地将UISwitch设置为单元的accessoryView来解决它.

(这部分偏离原始问题,但如果有人偶然发现它可能会有用).对于任何想知道原始问题的人来说,答案是在第一次编辑之下.

objective-c uitableview ios

8
推荐指数
1
解决办法
8982
查看次数

PHP Semaphore替代?

我正在制作一个小型在线游戏,其中(你知道什么)会有多个用户访问同一个数据库.我的主人没有启用信号量,我无法负担其他的东西(我是一名高中生),所以我正在寻找替代方案.

经过一些研究,我遇到了几个解决方法:


A)我做了几个模仿Semaphores的函数,这是我认为的最好:

function SemaphoreWait($id) {
    $filename = SEMAPHORE_PATH . $id . '.txt';
    $handle = fopen($filename, 'w') or die("Error opening file.");
    if (flock($handle, LOCK_EX)) {
        //nothing...
    } else {
        die("Could not lock file.");
    }
    return $handle;
}

function SemaphoreSignal($handle) {
    fclose($handle);
}
Run Code Online (Sandbox Code Playgroud)

(我知道if语句中有不必要的代码).你们有什么感想?显然它并不完美,但一般的做法还可以吗?有什么问题吗?这是我第一次使用并发技术,而且我通常喜欢低级语言,这使得它更有意义.

无论如何,我无法想到任何"逻辑缺陷",而我唯一关心的是速度; 我读过这个flock很慢.


B)MySQL还提供"锁定"功能.这比较如何flock?我假设它阻止一个用户的脚本锁定表而另一个用户请求它?我能想到的问题是这会锁定整个表,但我只需要锁定个别用户(所以不是每个人都在等待).


似乎人们说我不需要信号量来更新数据库.我发现你可以使用一个简单的增量查询,但仍然有一些我需要解决的例子:

如果我需要在执行操作之前检查值,该怎么办?就像我们说的那样,我需要在允许攻击之前检查防守者是否足够强壮,比如足够的健康状况.如果是这样的话,那就进行战斗,并在不让其他人捣乱数据的情况下造成一些伤害.

我的理解是每次都有一些查询,在一定长度的代码上(发送查询,获取数据,增加数据,将其存回),数据库不够聪明,无法处理?或者我错了?抱歉

php mysql concurrency semaphore flock

7
推荐指数
1
解决办法
5661
查看次数

是否可以将数据转发到Zend 2中的另一个控制器/操作?

我认为一个常见的问题是尝试将数据转发(发布)到另一个页面.通常情况下,我会使用会话来在页面之间传递数据,但Zend中的这个前向助手看起来有潜力.有没有办法获得有关转发请求的信息?就像要求转发器一样(当没有转发器时它会正常返回null)?

如果没有当前的实施,是否可能?这将是一个有趣的项目,无论如何我永远都想要的东西.(我现在也在使用自己的BcryptDbTableAuth类,直到找到更好的解决方案).

顺便说一句,我不是在谈论添加请求参数.它应该对用户不可见.而且我还在调查变量路线(Wildcard应该可以做到这一点,但我一直得到"路线无法匹配"......将继续钻探更多)

redirect forward zend-framework2

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

Zend 2 db交易?

我们如何在Zend 2中使用交易?我没有在API中找到任何内容,Zend 1的几个问题涉及常规的PDO函数,但我在Zend 2中没有看到类似的内容.

database pdo transactions zend-framework2

7
推荐指数
2
解决办法
3185
查看次数

Arduino无法正确读取Serial

好吧,我用google搜索从Arduino串口获取字符串,我甚至没有运气,甚至复制和粘贴示例.

我正在尝试从Serial中获取一个字符串.这是我的代码:

void setup() {
    Serial.begin(9600);
    Serial.write("Power On");
}

void loop()
{
    while(!Serial.available());

    while (Serial.available() > 0) {
      Serial.write(Serial.read());
    }
    Serial.println();
}
Run Code Online (Sandbox Code Playgroud)

而且它逐个字符地打印出来.

我也试过了

char* read(int len) {
  while (!Serial.available());
  char str[len];
  int i = 0;
  while (i < len) {
    str[i] = '\0';
    int inByte = Serial.read();
    Serial.println(inByte);
    if (inByte == -1) {
        return str;
    } else {
      str[i++] = inByte;
    }
  }
  return str;
}
Run Code Online (Sandbox Code Playgroud)

并且它一次返回1个字符(serial.print(inByte)每隔一次返回-1).为什么Serial会分裂每个字符?

如果我输入'hello'并且我调用serial.read()它会给出一个字符然后说什么都没有,然后给另一个角色并且说什么都没有.

c serial-port arduino stream

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

如何从链接对话框中删除协议(ckeditor)

我想删除ckeditor中的"其他"对话框的选项(链接 - >协议).

这让用户感到困惑; 他们没有指定协议,然后链接在我的服务器上查找文件(而不是外部链接,使用户感到困惑).

我尝试从link.js中删除"其他"选项,但这不起作用(仍然显示).如果我从语言文件中删除它,我得到"未定义"而不是其他.我试过没有运气搜索"ckeditor删除链接协议"之类的所有内容.

谁能帮我这个?

javascript dialog protocols hyperlink ckeditor

6
推荐指数
1
解决办法
5192
查看次数