我在看的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')
.有区别吗?我该怎么用?
我正在制作一个依赖于设置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.proxyPort
和https.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) 我正在制作一个主要面向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时,它似乎有一些时髦的尺寸).
该解决方案可供稍后对任何可能对此感兴趣的人参考.
谢谢大家!
编辑:我将奖金授予约翰,因为他在答案中付出了很多努力,并且无论如何都会得到它,但仍然没有可行的解决方案.我仍在寻找答案,如果有人知道如何做到这一点,我将不胜感激.
我想在我的应用程序中添加一个"最大化"按钮,隐藏导航和标签栏.导航栏和标签栏应平滑地滑入/滑出,内部/内容视图也应以与导航栏和标签栏相同的速率展开和缩小.
我用于[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) 我无法理解它是如何工作的.我已经阅读了很多关于它的线程 - 例如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来解决它.
(这部分偏离原始问题,但如果有人偶然发现它可能会有用).对于任何想知道原始问题的人来说,答案是在第一次编辑之下.
我正在制作一个小型在线游戏,其中(你知道什么)会有多个用户访问同一个数据库.我的主人没有启用信号量,我无法负担其他的东西(我是一名高中生),所以我正在寻找替代方案.
经过一些研究,我遇到了几个解决方法:
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
?我假设它阻止一个用户的脚本锁定表而另一个用户请求它?我能想到的问题是这会锁定整个表,但我只需要锁定个别用户(所以不是每个人都在等待).
似乎人们说我不需要信号量来更新数据库.我发现你可以使用一个简单的增量查询,但仍然有一些我需要解决的例子:
如果我需要在执行操作之前检查值,该怎么办?就像我们说的那样,我需要在允许攻击之前检查防守者是否足够强壮,比如足够的健康状况.如果是这样的话,那就进行战斗,并在不让其他人捣乱数据的情况下造成一些伤害.
我的理解是每次都有一些查询,在一定长度的代码上(发送查询,获取数据,增加数据,将其存回),数据库不够聪明,无法处理?或者我错了?抱歉
我认为一个常见的问题是尝试将数据转发(发布)到另一个页面.通常情况下,我会使用会话来在页面之间传递数据,但Zend中的这个前向助手看起来有潜力.有没有办法获得有关转发请求的信息?就像要求转发器一样(当没有转发器时它会正常返回null)?
如果没有当前的实施,是否可能?这将是一个有趣的项目,无论如何我永远都想要的东西.(我现在也在使用自己的BcryptDbTableAuth类,直到找到更好的解决方案).
顺便说一句,我不是在谈论添加请求参数.它应该对用户不可见.而且我还在调查变量路线(Wildcard应该可以做到这一点,但我一直得到"路线无法匹配"......将继续钻探更多)
我们如何在Zend 2中使用交易?我没有在API中找到任何内容,Zend 1的几个问题涉及常规的PDO函数,但我在Zend 2中没有看到类似的内容.
好吧,我用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()它会给出一个字符然后说什么都没有,然后给另一个角色并且说什么都没有.
我想删除ckeditor中的"其他"对话框的选项(链接 - >协议).
这让用户感到困惑; 他们没有指定协议,然后链接在我的服务器上查找文件(而不是外部链接,使用户感到困惑).
我尝试从link.js中删除"其他"选项,但这不起作用(仍然显示).如果我从语言文件中删除它,我得到"未定义"而不是其他.我试过没有运气搜索"ckeditor删除链接协议"之类的所有内容.
谁能帮我这个?
ios ×2
javascript ×2
objective-c ×2
arduino ×1
c ×1
ckeditor ×1
cocoa-touch ×1
concurrency ×1
css ×1
database ×1
dialog ×1
dynamic ×1
express ×1
flock ×1
forward ×1
https ×1
hyperlink ×1
java ×1
mysql ×1
node.js ×1
pdo ×1
php ×1
protocols ×1
proxy ×1
redirect ×1
semaphore ×1
serial-port ×1
stream ×1
transactions ×1
uitableview ×1
viewport ×1