这个问题是关于模板化和本地化的,通过backbone.js使用require.js和下划线模板.应用程序需要动态本地化.
在开始一条后来证明有问题的路径之前,有没有比我正在考虑的更好的解决方案 - 我关注速度和内存,反复合并和处理语言数组.假设是2-3万个语言字符串.
当前的方法(有效,但看起来处理器很重):
.
define(['backbone', 'models/model', 'text!template.html', 'i18n!my/nls/translatedbits'],
function(Backbone, MyModel, TemplateText, TranslationObject) {
var View = Backbone.View.extend({
model: {},
initialize : function(params) {
this.model = new MyModel();
},
render : function(callBack) {
// Get the model attributes
var templateParams = _.clone(this.model.attributes);
// Bolt on the tranlsated elements (established from require.js I18N plugin)
templateParams.t = TranslationObject;
// Pass the lot ot the template
var template = _.template(TemplateText, this.model.attributes);
$(this.el).html( template );
return this;
}
}); …
Run Code Online (Sandbox Code Playgroud) 我正在使用Gulp将我的sass编译成css.一个简单的任务编译目录中的style.scss
文件,_/sass
并将输出保存到项目的根目录中.style.scss
仅用于导入目录中的其他文件_/sass
.
当我从命令行($ gulp
)运行默认任务时,我得到一个sass无法编译的错误.它包含在下面.我已从包含的文件中删除所有内容并再次运行该任务.我仍然收到相同的错误(我在网上看到的建议这可能会测试编码问题.我不完全理解编码以及这可能会破坏我的场景中的事情).
我也从命令行运行,$ sass _/sass/style.scss style.css
它与包含文件中的内容完美配合.这告诉我gulp sass插件本身存在问题.
来自gulpfile.js的相关片段:
var gulp = require('gulp');
var sass = require('gulp-sass');
// Compile sass files
gulp.task('sass', function () {
gulp.src('./_/sass/style.scss')
.pipe(sass())
.pipe(gulp.dest('./'));
});
// The default task (called when you run `gulp`)
gulp.task('default', function() {
gulp.run('sass');
// Watch files and run tasks if they change
gulp.watch(['./_/sass/style.scss'], function() {
gulp.run('sass');
})
});
Run Code Online (Sandbox Code Playgroud)
style.scss的全部内容:
/* RESET */
@import '_/sass/reset';
/* TYPOGRAPHY */
@import '_/sass/typography'; …
Run Code Online (Sandbox Code Playgroud) PDO准备好的陈述应该在使用后释放吗?如果是这样,怎么样?具体来说,我问的是MySQL - 你怎么能,也应该DEALLOCATE PREPARE
通过PDO 打电话.(编辑:澄清一下,这个问题并不是指仿效准备,而是真正的准备.)
此外 - 这会释放结果集(大时)吗?
说明:
我已经看到了代码
$stmnt = $db->prepare($sql);
$stmnt->execute($aParams);
$stmnt = null;
Run Code Online (Sandbox Code Playgroud)
这让我想知道这是做什么的,何时,如果f unset($stmnt);
会有所不同?
手册表明
准备好查询后,数据库将分析,编译和优化其执行查询的计划.[...]通过使用预准备语句,应用程序避免重复分析/编译/优化循环.
这往往表明你应该取消分配语句,MySQL有能力.所以,
DEALLOCATE PREPARE
,怎么打电话为了完整性,另一个提到"free_result"和"close"函数的SO问题mysqli_()
表明释放语句实际上增加了时间(除非你有大量的内存使用并需要空间).但是"free_result"不同于释放SQL服务器而不是缓存准备好的语句.
我们遇到了AWS Aurora故障转移问题,并正在寻找解决方法的指针。
情境
AWS Aurora设置了两个端点:
因此,我们的PDO MySQL连接字符串为stackName-dbcluster-ID.cluster-ID.us-west-2.rds.amazonaws.com
(用于编写)
故障转移后
故障转移时,DNS条目将翻转为指向以下位置:
至关重要的是,PDO连接字符串(用于写入)仍然是相同的“ stackName-dbcluster-ID.cluster-ID.us-west-2.rds.amazonaws.com”,但指向不同的IP地址。
发生了什么
我们遇到了错误1290“ SQLSTATE [HY000]:一般错误:1290 MySQL服务器正在使用--read-only选项运行,因此它无法执行此语句”。
随着数据库引擎停止启动,我们的初始持久连接将“消失”并失效(我们将在重新连接/重试代码中立即进行处理)。
但是,上面的错误表示将向旧节点建立新连接,但随后不会随着DNS更改的传播而进一步失效。它们持续了10/15分钟(远远超出了DNS的TTL)。
我的问题
旁注
我们已经有适当的代码来处理重试,并且告诉他们重试以获得新的非持久连接(有效)。在这一点上,我们可以“无效” PDO连接,因此脚本的下一次运行不会一遍又一遍地重复此循环。
故障转移可以随时发生,因此我们无法执行手动操作,例如重新启动php(因为我们这次必须这样做)。
没有持久的连接,性能会明显降低。
FastCGI,Centos 16,PHP 7.2,MySQLD 5.0.12-dev(在Centos上是正常的-请参阅https://superuser.com/questions/1433346/php-shows-outdated-mysqlnd-version)
我正在使用Front Controller设计模式构建应用程序,并且只有一个页面index.php
,所有用户请求都通过该页面作为参数传递(与常规设计中的不同页面/控制器相对).
如何将这些参数连接到应用程序逻辑?
例如,我有两种不同的行为:
index.php?action=userLogin&username=admin&password=qwerty //process user login
index.php?action=displayUsersTable //show registered users
Run Code Online (Sandbox Code Playgroud)
目前我有一个array
系统接受的所有操作(以及预期的参数),我将action
URL中的param与key
此数组的比较进行比较,然后检查此操作所需的参数.
//1 = optional, 2=required
$systemActions = [
"userLogin" => [
"login" => 2,
"password" => 2
],
"displayUsersTable" => []
];
Run Code Online (Sandbox Code Playgroud)
显然,随着系统的发展,这将成为一个怪物阵列.
是否有更好的方法将发送到前端控制器的参数绑定到系统操作?
我试图从mysql数据库中获取记录 Mage::getModel('amshuhucustomer/groupdomain')->load($id);
它正在与observer一起工作,所以不需要config.xml中的前端
但它没有加载并说"资源未设置"
模块的/ etc/config.xml中
<global>
<models>
<amshuhucustomer>
<class>Amshuhu_Customer_Model</class>
<resourceModel>amshuhucustomer_mysql4</resourceModel>
</amshuhucustomer>
<amshuhucustomer_mysql4>
<class>Amshuhu_Customer_Model_Mysql4</class>
<entities>
<groupdomain>
<table>customergroupdomain</table>
</groupdomain>
</entities>
</amshuhucustomer_mysql4>
</models>
<resources>
<amshuhucustomer_setup>
<setup>
<module>Amshuhu_Customer</module>
<class>Amshuhu_Customer_Model_Mysql4_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</amshuhucustomer_setup>
<amshuhucustomer_write>
<connection>
<use>core_write</use>
</connection>
</amshuhucustomer_write>
<amshuhucustomer_read>
<connection>
<use>core_read</use>
</connection>
</amshuhucustomer_read>
</resources>
......
</global>
Run Code Online (Sandbox Code Playgroud)
Groupdomain.php
class Amshuhu_Customer_Model_Mysql4_Groupdomain extends Mage_Core_Model_Mysql4_Abstract
{
protected function _construct()
{
$this->_init('amshuhucustomer/groupdomain', 'id');
}
}
Run Code Online (Sandbox Code Playgroud) php ×4
mysql ×3
pdo ×2
backbone.js ×1
css ×1
gulp ×1
localization ×1
magento ×1
magento-1.x ×1
requirejs ×1
sass ×1
templates ×1