嗨,我对javascript开发相对较新.目前我有一个单独的javascript文件,其中包含大量的misc位代码,可以在网站的不同部分调用.例如,我有一个事件处理程序,一些谷歌地图的东西,只在一个页面上调用,我有一些验证的东西,我的联系页面等等.我的问题,是如何最好地组织这个代码 - 鉴于每个页面只需要很少的代码,但每页的不同和具体?
哦,我正在使用jquery,如果这有所作为.
目前,我的整个网站都通过SQL参数化查询进行更新.它有效,我们没有遇到任何问题,但偶尔会很慢.
我想知道将这些SQL命令中的一些重构到类中是否有意义,这样我们就不必经常访问数据库了.我理解命中数据库通常是任何Web应用程序中最慢的部分.例如,假设我们有这样的类结构:
项目(包括)任务(包括)任务
项目,任务和分配是课程.
在站点的某些点上,您一次只能处理一个项目,因此创建一个Project类并在页面中传递它(使用Session,Profile,其他东西)可能是有意义的.我想这个类会有一个Save()方法来保存值的变化.
投入时间来做这件事是否有意义?在什么条件下值得呢?
我试图在Eclipse中键入一对尖括号,如"<>".然而,它显示为单引号和点,如"'.".我尝试了几次,发现尖括号实际上位于后斜杠的位置.
为什么会这样?我怎样才能改回来?
提前致谢.
习
我是pyqt的新手,我还面临着一些新手问题:
我有一个QTableWidget,它是在QChoice控件上委托的项目(希望我说得对)我需要在用户更改时更改单元格背景颜色
简要选择控件选择
:如何更改表格小部件中的单元格背景颜色?
我
提前使用pyqt4和python 2.6
thanx
当Facebook为应用程序增加流量时,它通常附加&ref=whatever到查询字符串.这对于确定哪些集成点正在工作非常有用.我已经弄清楚其中一些是什么意思了.例如:
ref =书签 - 用户点击书签.
ref = game_my_recent - 用户点击了游戏仪表板的上半部分.
"ref = ts"是什么意思?它占了大量的流量.我在所有常见的Facebook页面上查看了源代码,但找不到我的任何应用程序生成的ant内容的匹配项.
同样的问题,由我在Facebook开发者论坛上发布:http: //forum.developers.facebook.com/viewtopic.php?id = 54866
在Android开源qemu代码中,我遇到了这行代码:
machine->max_cpus = machine->max_cpus ?: 1; /* Default to UP */
Run Code Online (Sandbox Code Playgroud)
这只是一种令人困惑的说法:
if (machine->max_cpus) {
; //do nothing
} else {
machine->max_cpus = 1;
}
Run Code Online (Sandbox Code Playgroud)
如果是这样,那就不会更清楚了:
if (machine->max_cpus == 0) machine->max_cpus = 1;
Run Code Online (Sandbox Code Playgroud)
有趣的是,这可以编译并与gcc一起使用,但不能在http://www.comeaucomputing.com/tryitout/上编译.
是否可以将Web应用程序项目.ascx(用户控件)编译为dll?
我想做以下事情:
我已经成功地阅读了这篇文章,http://msdn.microsoft.com/en-us/library/aa479318.aspx.
但是,它使用网站项目,我不能将js css作为资源嵌入到网站项目中.
有任何想法吗?如果我改变方法,我是否会犯这个错误?
我在使用Qt应用程序时遇到了一些麻烦; 特别是QNetworkAccessManager类.我正在尝试使用QNetworkAccessManager的post()方法执行二进制文件的简单HTTP上载.文档声明我可以将指向QIODevice的指针发送到post(),并且该类将传输在QIODevice中找到的数据.这告诉我,我应该能够给post()一个指向QFile的指针.例如:
QFile compressedFile("temp");
compressedFile.open(QIODevice::ReadOnly);
netManager.post(QNetworkRequest(QUrl("http://mywebsite.com/upload") ), &compressedFile);
Run Code Online (Sandbox Code Playgroud)
我正在开发的Windows系统上发生的事情是我的Qt应用程序从QFile推送数据,但是没有完成请求; 它似乎坐在那里等待从文件中显示更多数据.在我手动终止应用程序之前,post请求不会"关闭",此时整个文件显示在我的服务器端.
从一些调试和研究中,我认为这是发生的,因为当你到达文件的末尾时,QFile的read()操作不会返回-1.我认为QNetworkAccessManager试图从QIODevice读取,直到它从read()获得-1,此时它假定没有更多数据并关闭请求.如果它继续从read()获得返回码为零,QNetworkAccessManager假定可能有更多数据到来,因此它一直在等待该假设数据.
我已经用一些测试代码确认,在你读完文件末尾后,QFile的read()操作只返回零.这似乎与QNetworkAccessManager的post()方法期望QIODevice的行为方式不兼容.我的问题是:
任何建议或提示将不胜感激.
更新:事实证明我有两个不同的问题:一个在客户端,一个在服务器端.在客户端,我必须确保我的QFile对象在网络事务期间保持不变.QNetworkAccessManager的post()方法立即返回,但实际上并未立即完成.您需要将一个槽附加到QNetworkAccessManager的finished()信号,以确定POST何时实际完成.在我的情况下,很容易将QFile保持在或多或少永久,但我还在finish()信号上附加了一个槽,以便检查来自服务器的错误响应.
我将信号附加到插槽中,如下所示:
connect(&netManager, SIGNAL(finished(QNetworkReply*) ), this, SLOT(postFinished(QNetworkReply*) ) );
Run Code Online (Sandbox Code Playgroud)
什么时候发送我的文件,我写了这样的邮政编码(请注意,compressFile是我的类的成员,因此在此代码之后不会超出范围):
compressedFile.open(QIODevice::ReadOnly);
netManager.post(QNetworkRequest(QUrl(httpDestination.getCString() ) ), &compressedFile);
Run Code Online (Sandbox Code Playgroud)
来自QNetworkAccessManager的完成(QNetworkReply*)信号触发我的postFinished(QNetworkReply*)方法.发生这种情况时,我可以安全地关闭compressedFile并删除compressedFile表示的数据文件.出于调试目的,我还添加了一些printf()语句来确认事务已完成:
void CL_QtLogCompressor::postFinished(QNetworkReply* reply)
{
QByteArray response = reply->readAll();
printf("response: %s\n", response.data() );
printf("reply error %d\n", reply->error() );
reply->deleteLater();
compressedFile.close();
compressedFile.remove();
}
Run Code Online (Sandbox Code Playgroud)
由于compressedFile不会立即关闭并且不会超出范围,因此QNetworkAccessManager可以花费尽可能多的时间来传输我的文件.最终事务完成,我的postFinished()方法被调用.
我的另一个问题(这也导致我看到事务从未完成的行为)是我的Web服务器的Python代码没有正确地部署POST,但这超出了我原来的Qt问题的范围.
我们正在尝试通过MSBuild发布ClickOnce应用程序.我们已经使它适用于已安装的Windows应用程序版本.
但是,当我们将install设置为false,以便它只是从Web运行应用程序时,当我们尝试从URL运行应用程序时,我们收到以下错误:"部署和应用程序没有匹配的安全区域"这很好用在Internet Explorer中.我们只在Chrome和FireFox中收到错误消息.
以下是项目文件设置的示例.
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<PropertyGroup>
<SrcTreeRoot>$(MSBuildProjectDirectory)\..\..\..</SrcTreeRoot>
<!--ClickOnceDeployFolder>$(WebOutputDir)\AnalyzerPC</ClickOnceDeployFolder-->
<ProjectGuid>{8205E593-F400-41AE-8D6F-DEA290B2DCF9}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ApplicationIcon>Graphics\EDA Icon.ico</ApplicationIcon>
<AssemblyName>DASHQueryBuilder</AssemblyName>
<OutputType>WinExe</OutputType>
<RootNamespace>TetraData.Analyzer</RootNamespace>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>2.0</OldToolsVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<ManifestCertificateThumbprint>...</ManifestCertificateThumbprint>
<GenerateManifests>true</GenerateManifests>
<SignManifests>true</SignManifests>
<SignAssembly>true</SignAssembly>
<ManifestKeyFile>$(BuildDir)\Certificates\TetraDataCode.pfx</ManifestKeyFile>
<ProductVersion>9.0.21022</ProductVersion>
<PublishUrl>http://localhost/DASHQueryBuilder/</PublishUrl>
<Install>false</Install>
<!--InstallFrom>Web</InstallFrom-->
<UpdateEnabled>false</UpdateEnabled>
<MapFileExtensions>true</MapFileExtensions>
<PublisherName>Follett Software Company</PublisherName>
<TrustUrlParameters>true</TrustUrlParameters>
<ApplicationRevision>0</ApplicationRevision>
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>false</BootstrapperEnabled>
</PropertyGroup>
<Import Project="$(SrcTreeRoot)\Build\TaskInit.Tasks" />
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(SrcTreeRoot)\Build\TaskOverrides.Tasks" />
<Import Project="$(MSBuildProjectDirectory)\Analyzer.csproj" />
<PropertyGroup>
<PublishDir>$(WebOutputDir)\DASH Query Builder\</PublishDir>
<ApplicationVersion>$(MajorMinorVersion).0.0</ApplicationVersion>
</PropertyGroup>
<Target Name="BeforeResolveReferences">
<Copy SourceFiles="$(MSBuildProjectDirectory)\DASHQueryBuilder.config" DestinationFiles="$(MSBuildProjectDirectory)\app.config" />
</Target> …Run Code Online (Sandbox Code Playgroud) 假设我们有这段代码(暂时忘记原型):
function A(){
var foo = 1;
this.method = function(){
return foo;
}
}
var a = new A();
Run Code Online (Sandbox Code Playgroud)
是每次运行函数A时重新编译的内部函数?或者更好(以及为什么)这样做:
function method = function(){ return this.foo; }
function A(){
this.foo = 1;
this.method = method;
}
var a = new A();
Run Code Online (Sandbox Code Playgroud)
或者javascript引擎是否足够智能,不会每次都创建一个新的"方法"功能?特别是Google的v8和node.js.
此外,欢迎任何关于何时使用哪种技术的一般性建议.在我的具体示例中,使用第一个示例非常适合我,但我知道外部函数将被多次实例化.