我看过这样写的JavaScript(它是在演示中,我手头没有实际的代码,但暗示这是正常的):
(function() {
var a = 1;
this.sayA = function() {
alert(a);
}
}).call(this);
sayA();
Run Code Online (Sandbox Code Playgroud)
我想它是一个匿名函数,因此变量a不是全局可用的.
有什么意义.call(this)呢?由于这个函数没有嵌套,this只是窗口.它与()最后的写作有何不同?
我有以下MySql查询:
select t1.*
from Table1 t1
inner join Table2 t2
on t1.CommonID = t2.CommonID
where t1.FilterID = 1
Run Code Online (Sandbox Code Playgroud)
运行大约需要30秒,这很奇怪,因为如果我注释掉连接或where子句,它需要不到一秒钟:即
select t1.*
from Table1 t1
where t1.FilterID = 1
Run Code Online (Sandbox Code Playgroud)
要么
select t1.*
from Table1 t1
inner join Table2 t2
on t1.CommonID = t2.CommonID
Run Code Online (Sandbox Code Playgroud)
每个不到一秒钟.
然后是STRAIGHT_JOIN关键字,我可以在这里找到一个参考:http: //dev.mysql.com/doc/refman/5.0/en/join.html
STRAIGHT_JOIN类似于JOIN,只是左表始终在右表之前读取.这可以用于连接优化器以错误顺序放置表的那些(少数)情况.
什么?我可以写:
select t1.*
from Table1 t1
STRAIGHT_JOIN Table2 t2
on t1.CommonID = t2.CommonID
where t1.FilterID = 1
Run Code Online (Sandbox Code Playgroud)
并且查询在不到一秒的时间内执行.
更奇怪的是,我可以写:
select STRAIGHT_JOIN t1.*
from Table1 t1
inner join Table2 t2
on t1.CommonID = …Run Code Online (Sandbox Code Playgroud) 我正在使用solr,在localhost设置:8983我基本上使用开箱即用的例子.我输入了一个名为"Car"的文档,另一个名为"Cars"的文档.
如果我访问:
http://localhost:8983/solr/select?q=Car
Run Code Online (Sandbox Code Playgroud)
要么
http://localhost:8983/solr/select?q=Cars
Run Code Online (Sandbox Code Playgroud)
我希望得到这两份文件.目前,我没有.
在"schema.xml"的fields标记中,"name"的条目是:
"text_general"具有以下"分析器"(没有词干分析器):
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
Run Code Online (Sandbox Code Playgroud)
我试图为每个分析仪添加一个词干分析器.我试过了:
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.KStemFilterFactory"/>
<filter class="solr.EnglishMinimalStemFilterFactory"/>
Run Code Online (Sandbox Code Playgroud)
这样做使搜索"汽车"会找到"汽车",但我永远找不到"汽车".
应该可以找到"汽车"吗?
任何帮助将不胜感激.谢谢.
我不完全理解string.Equals的第二个参数,这是因为我找不到任何实际会产生影响的例子.例如,这里给出的示例是相同的,无论第二个参数的值如何(除了IgnoreCase):http: //msdn.microsoft.com/en-us/library/c64xh8f9.aspx
我只是在讨论StringComparison.CurrentCulture,InvariantCulture或Ordinal的值.
我可以理解这些与IgnoreCase等价物之间的区别.
在下面的例子中,有没有办法构造对象,使"b"具有属性a1,初始化为"2"?
function A(a1) {
this.a1 = a1;
}
function B(b1, a1) {
this.b1 = b1;
}
B.prototype = new A;
var b = new B('1', '2');
Run Code Online (Sandbox Code Playgroud)
我基本上试图以传统的面向对象语言(例如c#)复制所谓的"调用基础构造函数".
我有一个查询字符串,如:
N1 = V1和N2 = v2和N3 = V3
等等
我只想要一个接受查询字符串和名称(键)的php函数,并从查询字符串中删除名称值对.
我发现的每个例子都使用正则表达式并假设该值将存在并且它不会为空,但在我的情况下(可能一般来说,我想知道)这也是一个有效的查询:
N1 = V1&N2 = N3&
我事先并不知道会有多少把钥匙.
我确信正则表达式是吃时间的怪物.最终,宇宙中的所有物质都将以正则表达式结束.
鉴于:
function A(name) {
this.name = name;
}
Run Code Online (Sandbox Code Playgroud)
是:
var a1 = new A("A1");
Run Code Online (Sandbox Code Playgroud)
完全等同于:
var a1 = {};
A.call(a1, "A1");
a1.__proto__ = A.prototype;
Run Code Online (Sandbox Code Playgroud)
?
谢谢
我有一个在IIS 6上运行的应用程序.所有请求都通过aspnet_isapi.dll.这是通过通配符应用程序映射(未验证文件存在)实现的.
我已将所述应用程序复制到运行IIS7的计算机上,并希望再次使用它.
在应用程序中,任何扩展名为.aspx(或.ashx)的请求都以正常方式处理.具有不同扩展名的其他请求(例如.html和.xml)由自定义http模块处理.有些请求没有扩展名,并且动态地重定向到带扩展名的文件(例如,访问.../item/1可能会重定向到.../item/1.html或.../item/1.xml,具体取决于accept头中的值).
新位置可能不存在,但动态生成响应.
目前,应用程序池处于"经典"模式,并且正在使用.NET v4.0(之前使用的是.NET 3.5,但这似乎与问题无关).自定义http模块仅在web.config中设置.
重定向(从.../item/1到.../item/1.html)似乎有效,这表明应用程序确实正在处理扩展较少的请求(该重定向在应用程序本身中写入).我认为这意味着自定义模块正在运行.
但是,带扩展名的请求(.html,.xml等)失败了.我得到的错误是:
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
Module: IIS Web Core
Notification: MapRequestHandler
Handler: StaticFile
Error Code: 0x80070002
Run Code Online (Sandbox Code Playgroud)
我尝试过:添加一个映射*到aspnet_isapi.dll的通配符脚本映射尝试将*.html的特定映射添加到aspnet_isapi.dll
这些仍然会导致相同的错误消息,并且似乎仍然转到处理程序"StaticFile".
我尝试修改"StaticFile",以便它使用aspnet_isapi.dll可执行文件,这会导致新的错误:
HTTP Error 404.4 - Not Found
The resource you are looking for does not have a handler associated with it.
Handler: Not yet determined
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
如果我将全局变量x声明为:
var x = "I am window.x";
Run Code Online (Sandbox Code Playgroud)
x将是window对象的公共属性。如果我调用全局函数(不先使用“ call”,“ apply”或将其附加到另一个对象),则将窗口对象作为上下文传递(“ this”关键字)。就像是将x属性放在当前上下文中一样,该上下文恰好是窗口。
但是,如果我在函数内部以相同的方式声明变量,然后将该函数用作构造函数,则属性x将不是我刚刚构造的对象(当前上下文)的公共属性。我很高兴(我知道我可以做到这一点。x=…),但这似乎有点矛盾。
我是否误解了一些东西(关于它是一种矛盾/不同的行为)?谁能解释发生了什么,还是我必须接受的事情?
希望我的问题清楚。
使用OpenLayers,是否可以通过"loadend"事件轻松判断地图图像是否已正确加载?
我们正在从GeoServer中读取地图图块,并使用OpenLayers来显示它们.大多数情况下,图像会在合理的时间内显示.偶尔(特别是使用鼠标滚轮来回滚动时),"loadend"事件会被激活,就好像图像已加载一样,但没有显示任何内容.
当我调查HTML时,似乎图像具有正确的URL,但背景颜色为粉红色(通常是透明的),我在事件对象中看不到任何有用的东西.
有任何想法吗?
我希望能够阅读网站的屏幕截图,并尝试使用phantomjs和ASP.NET.
我尝试过使用page.render将屏幕截图保存到文件中.它作为控制台应用程序,但不是我从asp.net处理程序调用它.这可能是由于文件权限,因为简单的应用程序(如hello.js)工作正常.
没关系,我的首选不是写入文件,而是处理字节并直接从处理程序返回图像.
我有点迷失如何做到这一点.我注意到一个名为page.renderBase64的方法,但不知道如何使用它.
目前我正在使用IHttpHandler.
这里有一个类似的问题,但那个人最终放弃了phantomjs.我喜欢它的外观,并希望尽可能继续使用它. 使用C#运行Phantomjs以获取网页快照