我正在开发一个现有的多语言网站(Coldfusion/MySQL).
为什么在我坐的很多页面上,一些文本字符串总是硬编码到标记中,如:
<CFIF language = "EN"><p>Hello World</p></CFIF>
Run Code Online (Sandbox Code Playgroud)
而其他人使用数据库来更新文本,如下所示:
<p><cfoutput>#tx_greetings#</cfoutput></p>
Run Code Online (Sandbox Code Playgroud)
这里的最佳做法是什么?我想如果我要使用数据库进行翻译,那么将所有文本存储在那里(长和小)会更容易.如果我没有使用数据库,那么所有文本都应该是if-elsed.混合它有点维护,不是吗?
另外,text-string-length是否存在限制,我将其存储到MySQL?也许表现明智?
谢谢你的一些投入!
我正在第一次尝试实现Require.js,虽然我正在尝试遵循这两个教程(这里和这里),但我并没有完全理解它.这是我到目前为止:
在我的索引文件中:
<script type="text/javascript" data-main="../js/main" src="../js/libs/require/require.js"></script>
Run Code Online (Sandbox Code Playgroud)
在main.js里面
require.config({ baseUrl: "../js/",
paths: {
"jq-loader": "libs/jquery/jquery",
"jqm-loader": "libs/jquery-mobile/jquery-mobile",
"someplug": "libs/someplug/somplug",
}
});
// define app and dependencies??? - not sure what goes here? All plugins I'm using?
require(['app','order!libs/jquery/jquery', 'order!libs/jquery-mobile/jquery-mobile'],
function(App){
App.start();
});
Run Code Online (Sandbox Code Playgroud)
在jquery.js里面
define([ 'order!libs/jquery/jquery.min' ], function(){ return $; });
Run Code Online (Sandbox Code Playgroud)
在jquery.js里面(取决于Jquery)
// ERROR here in "mobile" being undefined
define(['order!libs/jquery-mobile/jquery-mobile.min'], function(){ return mobile; });
Run Code Online (Sandbox Code Playgroud)
和app.js
define([ 'jq-loader', 'jqm-loader'], function($, mobile){ …Run Code Online (Sandbox Code Playgroud) 我正在努力了解使用Coldfusion8的服务器方面的事情,到目前为止只做客户端的事情.
假设我有一个基本的Coldfusion页面布局,如下所示:
<script type="text/javascript">
function foo() { docoument.myForm.submit(); }
</script>
<cfif isdefined("sendMyForm")>
... running coldfusion...
... displaying something...
</cfelse>
<form action="nextPage.html" method="post" name="myForm">
<input type="text" name="formContains" />
<input type="hidden" name="sendMyForm" value="yup" />
<input type="button" name="sender" value="send" OnClick="foo() />
</form>
</cfif>
Run Code Online (Sandbox Code Playgroud)
问题:提交表单
时服务器端实际发生了什么?页面是否被"重新加载"并且cfif导致coldfusion运行并显示结果?只是寻找一些基本信息,以便我了解正在发生的事情.
谢谢你的提示!
我有两个函数可以调整和调整屏幕上元素的高度和宽度.
panelHeight将目标元素的高度设置为可用的屏幕高度,而panelWidth则调整元素的宽度.
我的问题:
我无法确保第一个函数(panelHeight)完成后第二个函数(panelWidth)触发.如果目标元素很长并且有一个滚动条,它将被panelHeight删除,但如果在panelWidth触发之前没有这样做,则设置宽度将被滚动条占用的空间关闭(17px - 当宽度为时仍然存在)计算).
所以我正在寻找一种方法,只有在另一个功能完成后才能触发一个函数.有点像回调,但我不确定谁在下面for循环中弄乱这个:
panelHeight: function (from) {
var self = this,
o = self.options,
wrap = $('div:jqmData(wrapper="true").ui-page-active').last(),
overthrow = wrap.jqmData("scrollmode") == "overthrow" && $('html').hasClass('ui-splitview-mode'),
blacklist = $('html').hasClass('blacklist'),
// calculationg toolbars
// elements
contents = TARGET_ELEMENT;
if (overthrow) {
for ( var i = 0; i < contents.length; i++){
// calculate values
...
contents.eq(i).css({
"max-height": setH,
"margin-top": blacklist == true ? glbH + lclH : …Run Code Online (Sandbox Code Playgroud) 我用这个例子来设置一个面向对象的小项目
我正在重做的页面有一些订单功能,带有动态数量的输入字段(比如一篇文章的尺寸,一些尺寸的S-XL,一些尺寸S-5XL.
在Coldfusion字段中,动态标记如下:
<input type="button" name="qty#counter#" id="qty-field#counter#"
Run Code Online (Sandbox Code Playgroud)
在我的CFC中,我列出了所有表单字段,如下所示:
<cfcomponent output="false" hint="">
<cfscript>
VARIABLES.Instance.Validation = {
field_a="validation_criteria",
field_b="validation_criteria",
...
}
</cfscript>
<cffunction name="Defaults" access="public" returntype="struct" output="false" hint="">
<cfscript>
// form defaults
var formDefaults = {
field_a="",
field_b="",
...
}
</cfscript>
<cfreturn formDefaults />
</cffunction>
<cffunction name="Commit" ... do something with db
<cfscript>
var LOCAL = {};
structAppend(defaultValues, VARIABLES.Instance.FormData);
LOCAL.xxx = defaultValues;
</cfscript>
... do stuff with LOCAL
Run Code Online (Sandbox Code Playgroud)
所以我正在创建一个包含所有传递的表单字段的对象,并在CFC中执行我的操作.在非面向对象的页面中类似于cfparam.
我的问题:
如果我在一个页面上有200个输入(简单...),我不可能每1-200个参数或将我的默认值扩展200个输入.所以,我的问题:是否有一种更简单的方法来"填充"动态数量的表单字段而不是添加虚拟字段1-500并希望这对所有情况都足够了(这是最糟糕的选择......)
AND:如果我想把它移植到MySQL ...在Coldfusion我有一个查询,如:
<cfoutput query="s">
<cfquery datasource="db">
UPDATE …Run Code Online (Sandbox Code Playgroud) 我需要遍历一组图像路径来抓取,调整大小并将图像从外部目标存储到S3.
我习惯叫cfcs这样做:
<cfinvoke component="form_img_handler" method="upload" returnvariable="imgSuccess">
<cfinvokeargument name="command" value="upload_search"/>
<cfinvokeargument name="imgPath" value="#results.bildpfad #"/>
<cfinvokeargument name="imgFile" value="#results.bilddateiname#"/>
<cfinvokeargument name="sellerILN" value="#results.iln#"/>
<cfinvokeargument name="cookie" value="#variables.screenWidth#"/>
</cfinvoke>
Run Code Online (Sandbox Code Playgroud)
问题:
如果我必须在循环中执行此操作25x,那么使用cfobject而不是更好cfinvoke吗?从我理解cfinvoke的实例化,运行它的工作和死亡.什么时候cfobjects留下来.如果是这样,在上述情况下使用会更好cfobject吗?如果是这样,我将如何调用我的upload函数(传递参数)以及如何在完成后删除对象?
(从未使用过cfobject ......)
感谢帮助!
我无法理解||在Jquery/Javascript中执行的顺序.
如果我有这个:
someVar = $el.attr("one") || options.two || "three";
Run Code Online (Sandbox Code Playgroud)
它设置someVar于当两个"三" $el.attr("one")并options.two没有定义.
我需要在此语句中添加另一个条件,如下所示:
someVar = $el.attr("one") || options.two || options.extra == "true" ? undefined : "three";
Run Code Online (Sandbox Code Playgroud)
所以这应该说:
如果没有'$el.attr("one")'或'options.two'定义,请检查'options.extra == true',如果这是真的,设置为'undefined',否则置'three'.
但是,undefined即使我设置了$el.attr("one"),我也总是得到,我不明白为什么?
谁能告诉我我的逻辑有什么问题?
谢谢!
我正在尝试循环查询cfscript.我想我拥有它,但它的查询循环到无限.
有人可以告诉我以下是什么问题:
<cfscript>
// loop single msg
variables.allRows = current_message.recordcount;
for ( variables.intRow = 1 ; variables.allRows LTE variables.intRow ; variables.intRow = variables.intRow + 1 ){
variables.msg_id_viewed = current_message[ "com_msg_id" ][ variables.intRow ];
variables.msg_app_alias = current_message[ "com_app_alias" ][variables.intRow];
variables.msg_img_ext = current_message[ "com_img" ][ variables.intRow ];
}
</cfscript>
Run Code Online (Sandbox Code Playgroud)
查询current_message返回单个记录,因此这应该只循环一次.
感谢帮助!
我在JSLint上有点挣扎.我有以下代码:
// inside a for-loop
if ( aMatch.length > 0 ){
temp = wrap.find( aMatch );
break;
} else if ( aMatch.length === 0 && o.siteMap[targetPath].length !== 0 ){
temp = targetPath;
break;
}
Run Code Online (Sandbox Code Playgroud)
JSLint抱怨:
Empty block "if ( aMatch.length > 0 ){"
Run Code Online (Sandbox Code Playgroud)
问题:
片段有什么问题."块"对我来说不是空的......
感谢您的一些见解!
编辑:
这是问题中的整个功能(没有评论)
loopHistory: function (scope, setPageContainer) {
var self = this,
o = self.options,
wrap = $('div:jqmData(wrapper="true")').length > 1 ? $('div:jqmData(wrapper="true")').last() : $('div:jqmData(wrapper="true")'),
$loopLength = $.mobile.urlHistory.stack.length-1,
temp, aMatch, parsedPath, dUrl, targetPath, i;
if …Run Code Online (Sandbox Code Playgroud) 我很难理解我在这里做错了什么.
我有一个空对象:
if ( doc._attachments === undefined ){
doc._attachments = {};
}
var attmtid = 123;
Run Code Online (Sandbox Code Playgroud)
我试图像这样填充:
doc._attachments[attmtid].revpos = "abc";
Run Code Online (Sandbox Code Playgroud)
但是我一直从Firebug得到一个未定义的错误:
doc._attachments[attmtid] is undefined
Run Code Online (Sandbox Code Playgroud)
并不能真正理解它.
问题:
有人能告诉我我做错了什么吗?
谢谢!
coldfusion ×5
javascript ×5
jquery ×5
loops ×2
mysql ×2
asynchronous ×1
callback ×1
cfinvoke ×1
dynamic ×1
element ×1
for-loop ×1
forms ×1
html ×1
jslint ×1
multilingual ×1
object ×1
oop ×1
operators ×1
parameters ×1
process ×1
requirejs ×1