什么时候适合使用AJAX?
使用AJAX的优点和缺点是什么?
回答我的上一个问题:有些人似乎非常坚定,如果情况合适,我应该只使用AJAX: 我应该在我的PHP类/脚本中添加AJAX逻辑吗?
回应Chad Birch的回答:是的,我指的是在开发一个"标准"网站时会采用AJAX来获得它的好处,并且不会被其应用程序削弱.以一种会破坏搜索排名的方式使用AJAX是不可接受的.因此,如果"保持网站完整"需要更多的工作,那将是一个"骗局".
我是一个团队中的成员,该团队维护着一个非常大的内部Delphi应用程序.现在我们开始关注mapsupport.我们认为与某些地图组件相比,Googlemap似乎是最物有所值的.当前的解决方案(非常糟糕)通过从ShellExecute启动Internet Explorer,加载Googlemap URL中的一些坐标来工作.然后谷歌地图显示通过坐标驾驶的最佳方向.
它的工作原理,但如果坐标的数量高于10,它可能会很慢.除此之外,IE中似乎有很大的内容......
另一个选择是使用TWebBrowser组件,并加载一个Googlemap html文件来显示相同的内容.是的我知道Googlemaps许可政策,我们准备在实际使用解决方案时向Google支付价格.
现在我已经为我自己的网站注册了一个API密钥,仅供测试.我还发现它可以加载本地html文件.从Javascript我可以根据Googlemap文档调用GUnload来消除memleaks.由于API密钥绑定到域或本地文件,我想我必须保存带坐标的javascript文件,然后在每次调用地图时将其加载到TWebBrowser中.我发现这很笨拙,但我没有别的办法......?
还有其他选项可以使用Google地图吗?由于糟糕的性能和内存管理,我不知道Delphi的其他html组件而不是TWebBrowser.我想使用Mozilla组件,但它似乎只适用于C++.
对此有何评论和建议?
根据这个线程关于运行C#apps sans .NET的建议我已经使用mono编译了我的应用程序.我使用最新的Visual C#.NET Express Edition构建了原始应用程序.它在Windows上的.NET上运行良好.然后我打开了Cygwin并导航到我的源码,我再次使用以下命令在mono下编译项目:
$ mcs <myProjectHere>.cs
Run Code Online (Sandbox Code Playgroud)
这会生成MyProject.exe,它可以在Cygwin中成功运行,并且可以从Window命令行成功运行.使用的命令是:
$ mono MyProject.exe
C:\...>mono MyProject.exe
Run Code Online (Sandbox Code Playgroud)
只是为了踢,简单地说:
C:\...>MyProject.exe
Run Code Online (Sandbox Code Playgroud)
一切按预期工作.然后,我尝试使用mkbundle命令将单声道编译的可执行文件构建为静态链接的二进制文件,如下所示:
$ mkbundle -o MyProject MyProject.exe --deps
Run Code Online (Sandbox Code Playgroud)
这是事情开始走下坡路的地方.它启动得很好,然后抱怨输出文件(可能是MyProject.exe)因为忙而无法打开.它的全部输出都在这里:
$ mkbundle -o Program Program.exe --deps
OS is: Windows
Sources: 1 Auto-dependencies: True
embedding: c:\Documents and Settings\bsweeney\My Documents\Visual Studio 2008
\Projects\TestConsole\TestConsole\Program.exe
embedding: C:\PROGRA~1\Mono-2.2\lib\mono\2.0\mscorlib.dll
Compiling:
as -o temp.o temp.s
gcc -mno-cygwin -g -o Program -Wall temp.c `pkg-config --cflags --libs mono|dos2
unix` temp.o
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/bin/ld: cannot op
en output file Program.exe: Device or resource busy
collect2: … 除了我正在做的事情,因为它似乎不起作用,这样做有可能吗?我希望能够拥有一个类下的子类,专门为该class.subclass使用CSS.
CSS
.area1
{
border:1px solid black;
}
.area1.item
{
color:red;
}
.area2
{
border:1px solid blue;
}
.area2.item
{
color:blue;
}
Run Code Online (Sandbox Code Playgroud)
HTML
<div class="area1">
<table>
<tr>
<td class="item">Text Text Text</td>
<td class="item">Text Text Text</td>
</tr>
</table>
</div>
<div class="area2">
<table>
<tr>
<td class="item">Text Text Text</td>
<td class="item">Text Text Text</td>
</tr>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)
这样我就可以使用class ="item"作为父css类"area1","area2"下的元素.我知道我可以使用class ="area1 item"来实现这一点,但我不明白为什么它必须如此冗长.css子类不应该查看它所在的父类以便定义它吗?
注意:这适用于IE(现在使用7),但在FF中它没有,所以我假设这不是CSS标准的做事方式.
我刚刚接受了一个问题的采访,我很好奇答案应该是什么.问题基本上是:
假设你有一个n个整数的未排序列表.如何在此列表中找到k个最小值?也就是说,如果你有[10,11,24,12,13]的列表,并且正在寻找2个最小值,那么你会得到[10,11].
我有一个O(n*log(k))解决方案,这是我最好的,但我很好奇其他人想出了什么.我将通过发布我的解决方案来避免污染人们的大脑,并在一段时间内编辑它.
编辑#1:例如,函数如:list getMinVals(list&l,int k)
编辑#2:看起来它是一个选择算法,所以我也会投入我的解决方案; 迭代列表,并使用优先级队列来保存最小值.优先级队列的规范是最大值最终会在优先级队列的顶部,因此在将顶部与元素进行比较时,顶部将弹出,较小的元素将被推送.这假设优先级队列具有O(log n)推送和O(1)pop.
在函数式语言中,通常有一个Maybemonad,它允许你在一个对象上链接多个调用并让整个表达式返回None/ null如果链的任何部分评估为空,而不是典型的NullReferenceException你通过链接调用来获取C#对象可以为null.
这可以通过编写Maybe<T>一些扩展方法来实现,以允许使用查询理解在C#中进行类似的行为,这在使用可选元素/属性处理XML时非常有用,例如
var val = from foo in doc.Elements("foo").FirstOrDefault().ToMaybe()
from bar in foo.Attribute("bar").ToMaybe()
select bar.Value;
Run Code Online (Sandbox Code Playgroud)
但是这种语法有点笨拙且不直观,因为人们习惯于处理Linq中的序列而不是单个元素,并且它会给你留下一个Maybe<T>而不是T最后一个.有条件的去引用运算符(例如..)是否足以使其成为语言?例如
var val = doc.Elements("foo").FirstOrDefault()..Attribute("bar")..Value;
Run Code Online (Sandbox Code Playgroud)
条件去引用将扩展为:
object val;
var foo = doc.Elements("foo").FirstOrDefault();
if (foo != null)
{
var bar = foo.Attribute("bar");
if (bar != null)
{
val = bar.Value;
}
else
{
val = null;
}
}
Run Code Online (Sandbox Code Playgroud)
我可以看到,这可能会导致可怕的滥用,例如..在任何地方使用以避免使用NullReferenceException,但另一方面,如果使用得当,它可能在很多情况下非常方便.思考?
是否可以检测Python脚本是从命令提示符启动还是用户"双击"Windows上的文件浏览器中的.py文件?
我希望gcc $HOME/include除了通常的include目录之外还包含文件,但似乎没有类似的东西$LD_LIBRARY_PATH.
我知道我可以在编译时(或在makefile中)在命令行添加include目录,但我真的很喜欢这里的通用方法,就像在库中一样.
我正在尝试基于全文搜索执行用户搜索.
SELECT*FROM users WHERE MATCH(name)AGAINST('FDR'IN BOOLEAN MODE);
但是查询不会产生任何结果.我可以用其他字符串替换搜索值并产生结果.
我甚至尝试使用空停字列表但没有成功.问题似乎与这个特定的字符串有关.
另一周,我写了一个小线程类和一个单向消息管道,以允许线程之间的通信(每个线程两个管道,显然,用于双向通信).在我的Athlon 64 X2上一切正常,但我想知道如果两个线程都在查看相同的变量并且每个核心上的此变量的本地缓存值不同步,我是否会遇到任何问题.
我知道volatile关键字会强制变量从内存中刷新,但多核x86处理器是否有办法强制所有内核的缓存同步?这是我需要担心的事情,还是易失性和正确使用轻量级锁定机制(我使用_InterlockedExchange设置我的易失性管道变量)处理我想为多核x86 CPU编写"无锁"代码的所有情况?
我已经知道并使用了Critical Sections,Mutexes,Events等等.我主要想知道是否有x86内在函数,我不知道哪种力量或可用于强制缓存一致性.