我有一个冗长的JavaScript文件传递JSLint,除了"在定义之前使用"错误.
我使用了正常的函数声明,如...
function whatever() {do something;}
Run Code Online (Sandbox Code Playgroud)
而不是......
var whatever = function(){do something;};
Run Code Online (Sandbox Code Playgroud)
假设您使用function关键字声明所有函数,我认为它成为一个编程风格的问题.就个人而言,我更喜欢以一种看似合乎逻辑的方式构造我的函数,并使代码尽可能可读.例如,和你一样,我会在顶部放置一个init函数,因为它是从一切开始的地方.
...我喜欢按照对我有意义的顺序查看功能.
该脚本在几个测试的浏览器中完美运行(例如,FireFox,Safari,Mobile Safari,Fennec,IE,Chrome,Midori等).
这就是问题所在:我想在使用Titanium构建的iPhone应用程序中使用该脚本,但其编译器会因"使用前定义"错误而停止.
我怎么能绕过这个?
这可能是一个愚蠢的问题,但也......如果函数需要以特定的顺序调用,如何解决需要回调最初调用它的函数的被调用函数的问题?例如...
function buildMenu(){
Display a list of five menu items, each of which calls a function to build the associated screen.
}
function screen1() {
Display the screen associated with menu item #1.
}
Run Code Online (Sandbox Code Playgroud)
如果函数需要按顺序声明,则function screen1需要先于function buildMenu.但是,如果在某些情况下,无法构建screen1并因此想重新显示菜单(即调用技术上尚未声明的函数),该怎么办?
哦,是的......还有一个问题:是否有网站或程序会自动重新排序函数,而不是要求程序员手动完成?
我刚刚在Amazon RDS服务上创建了我的第一个数据库实例.我在想...
1)有没有办法让Amazon自动备份我的数据,即使实例被删除也会持续存在?
2)是否可以跨多个实例共享表?
3)当我第一次连接到实例时,我发现有三个数据库:我专门创建的数据库,innob和mysql.我应该继续使用我创建的那个还是其他一个?有成本影响吗?
谢谢.
假设我的下表中有数百种不同颜色的玩具......
---------------------------
ITEM | COST | COLOR
---------------------------
1 | 12.00 | BLUE
2 | 10.98 | RED
3 | 9.34 | BLUE
4 | 11.33 | WHITE
5 | 8.00 | YELLOW
. | . | .
. | . | .
. | . | .
Run Code Online (Sandbox Code Playgroud)
如果我想选择三个价格最低的蓝色玩具,我当然可以写...
SELECT * FROM TOYS WHERE Color = 'BLUE' ORDER BY COST LIMIT 3;
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法可以选择一个具有独特数量的最低价黄色,白色和蓝色玩具,就像我说的那样......
SELECT * FROM TOYS WHERE COLOR = 'YELLOW' (LIMIT 1) AND COLOR = 'WHITE' (LIMIT 3) AND …Run Code Online (Sandbox Code Playgroud) 我刚从Titanium切换到PhoneGap.一切正常,但我无法通过电子邮件链接启动应用程序.iPad/iPod动画启动应用程序,然后应用程序崩溃.
在此帖子中,真实应用名称已更改为"myapp".我在电子邮件中使用的链接myapp://(即真正的应用程序名称)通常带有参数(例如myapp://?argument=value),并且${PRODUCT_NAME}与字符串相同myapp.
有人有主意吗?谢谢.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>UIApplicationExitsOnSuspend</key> <true/>
<key>LSRequiresIPhoneOS</key> <true/>
<key>CFBundleSignature</key> <string>????</string>
<key>CFBundleDisplayName</key> <string>My App</string>
<key>CFBundleIdentifier</key> <string>com.mydomain.myapp</string>
<key>CFBundleName</key> <string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key> <string>APPL</string>
<key>CFBundleVersion</key> <string>1.0</string>
<key>CFBundleExecutable</key> <string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFiles</key>
<array>
<string>icon.png</string>
<string>icon_large.png</string>
</array>
<key>CFBundleInfoDictionaryVersion</key> <string>6.0</string>
<key>UILaunchImageFile~ipad</key> <string>Default-ipad</string>
<key>UILaunchImageFile~iphone</key> <string>Default</string>
<key>CFBundleDevelopmentRegion</key> <string>English</string>
<key>NSMainNibFile</key> <string></string>
<key>UIStatusBarHidden</key> <true/>
<key>UISupportedInterfaceOrientations~iphone</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key> <string>com.mydomain.myapp</string>
<key>CFBundleURLSchemes</key>
<array>
<string>myapp</string>
</array>
</dict>
</array> …Run Code Online (Sandbox Code Playgroud) 我正在尝试从Titanium webview内部打开的外部HTML页面中触发事件.
app.js文件...
var group, now, tab, view, window;
now = new Date();
view = Titanium.UI.createWebView({url: 'http://MYWEBSITE.com/index.htm?time=' + now.getTime()});
window = Titanium.UI.createWindow({tabBarHidden: true, navBarHidden: true});
window.add(view);
Titanium.App.addEventListener('browse', function(e) {
Ti.API.info("I received " + e.something + " from the webview.");
});
group = Titanium.UI.createTabGroup();
tab = Titanium.UI.createTab({title: 'window', window: window});
group.addTab(tab);
group.open(tab);
Run Code Online (Sandbox Code Playgroud)
js摘自网页...
$("#testButton").mousedown(function() {
alert ("I got clicked.");
Ti.App.fireEvent('browse', {something:'stuff'});
});
Run Code Online (Sandbox Code Playgroud)
(我在URL中包含时间以确保页面始终是新鲜的.)
如上所示添加事件侦听器,或使用view.addEventListener,编译但最终不起作用.
使用Titanium.UI.WebView.addEventListener会生成一个错误消息,指出该对象不存在.
我是否需要以不同的方式打开URL/webview?
此外,由于Titanium.App.fireEvent不是一个公认的功能,除了Titanium,如何防止JavaScript错误?
谢谢.
SURVEYS 表:SurveyID
UserID
Question
Choice1
Choice2
Choice3
Run Code Online (Sandbox Code Playgroud)
RESPONSES 表:UserID
SurveyID
Answer
Run Code Online (Sandbox Code Playgroud)
第一个愿望(已实现):向我展示用户28发起的所有调查:
SELECT *
FROM Surveys
WHERE Surveys.UserID = 28
Run Code Online (Sandbox Code Playgroud)
第二个愿望(已实现):向我显示用户28已回答的所有调查:
SELECT *
FROM Surveys
INNER JOIN Responses ON Surveys.SurveyID = Responses.SurveyID
WHERE Responses.UserID = 28
Run Code Online (Sandbox Code Playgroud)
向我显示所有未由用户28启动的调查以及哪些用户28尚未回答... SELECT*FROM Surveys INNER JOIN响应On Surveys.SurveyID = Responses.SurveyID WHERE Surveys.UserID <> 28 AND Responses.UserID <> 28 [或者:在哪里没有Surveys.UserID = 28 OR Responses.UserID = 28]
第三个查询消除了用户28的记录,但是将出现相同调查的其他实例.例如,假设用户29回答了调查问卷.将返回一行,因为WHERE不会禁止用户29的记录.
我想过使用子查询 - 类似于:SELECT*FROM Surveys WHERE Surveys.UserID <> 28 AND Surveys.SurveyID <>(SELECT Responses.SurveyID WHERE Responses.UserID = 28) - …
在这个例子中...
(5) (dogs) (5 dogs) (dogs 5)
Run Code Online (Sandbox Code Playgroud)
我只想匹配...
(5 dogs) -or- (dogs 5)
Run Code Online (Sandbox Code Playgroud)
数字可以是任意位数,包含逗号、小数点、数学运算符、美元符号等。我唯一需要注意的是同时存在数字和字母字符。
我开始对hrs 提供的示例进行修改,将其用于正则表达式...
\(((letter).*(number))\)|((number).*(letter))\)
Run Code Online (Sandbox Code Playgroud)
只捕捉这个...
(number letter) -or- (letter number)
Run Code Online (Sandbox Code Playgroud)
但不是...
(number) (letter)
Run Code Online (Sandbox Code Playgroud)
通过将表达式修改为...
\(((^[a-zA-Z]).*(^[0-9]))\)|((^[0-9]).*(^[a-zA-Z]))\)
Run Code Online (Sandbox Code Playgroud)
...但显然我不知道自己在做什么。