可能重复:
JavaScript:var functionName = function(){} vs function functionName(){}
有什么区别:
function sum(x, y) {
return x+y;
}
// and
var sum = function (x, y) {
return x+y;
}
Run Code Online (Sandbox Code Playgroud)
为什么一个用于另一个?
这是我在SO的第一个问题.
我有一个我公司的内部申请,我最近要求维护.这些应用程序是用PHP构建的,它的编码相当好(OO,DB Abstraction,Smarty),没有WTF-ish.
问题是应用程序非常慢.
我如何找出减缓应用程序速度的因素?我已经优化了代码,只进行了很少的数据库查询,所以我知道这是需要一段时间才能执行的PHP代码.我需要一些可以帮助我的工具,并且需要设计一个检查我的代码的策略.
我可以自己做检查/策略工作,但我需要更多的PHP工具来弄清楚我的应用程序在哪里.
思考?
是否可以检测用户何时点击浏览器的后退按钮?
我有一个Ajax应用程序,如果我能检测到用户点击后退按钮的时间,我可以显示相应的数据
任何使用PHP,JavaScript的解决方案都是首选.地狱解决方案在任何语言都很好,只需要一些我可以翻译成PHP/JavaScript的东西
哇,所有优秀的答案.我想使用Yahoo,但我已经使用了Prototype和Scriptaculous库,并且不想添加更多的ajax库.但是它使用iFrames,它为我编写自己的代码提供了一个很好的指针.
我一直在研究Ember的Todo MVC应用程序.在模型中,我注意到调用了一个commit()方法,Ember.run.once请参阅:https://github.com/addyosmani/todomvc/blob/gh-pages/architecture-examples/emberjs/js/models/todo.js# L9
todoDidChange: function () {
Ember.run.once(this, function () {
this.get('store').commit();
});
}.observes('isCompleted', 'title');
Run Code Online (Sandbox Code Playgroud)
如何包装this.get('store').commit()的Ember.run.once帮助吗?我把方法改为:
todoDidChange: function () {
this.get('store').commit();
}.observes('isCompleted', 'title');
Run Code Online (Sandbox Code Playgroud)
但我没有看到任何明显的差异.我阅读了文档,并且一个普遍的SO讨论无法弄清楚.
这是一个差异没有显示的情况,因为它只是一个小应用程序?
有没有办法读取模块的配置ini文件?
例如,我安装了php-eaccelerator(http://eaccelerator.net)并将eaccelerator.ini文件放入/etc/php.d.我的PHP安装不会读取此.ini文件,因为--with-config-file-scan-dir编译PHP时未使用该选项.有没有办法在某处手动指定ini文件的路径,以便PHP可以读取模块的设置?
我正在尝试渲染一个模态.为此,我使用{{outlet modalOutlet}}我的应用程序模板创建了一个自定义插座,有两个插座,默认插座和modalOutlet.但是,当渲染模态模板时{{outlet modalOutlet}},我的默认值{{outlet}}变为空.
如何更改它,以便默认{{outlet}}不会更改,因此我实际上可以渲染{{outlet modalOutlet}}为模态窗口,或作为边栏作为布局的一部分
我不确定这是由于我的代码,还是renderTemplate()我遗漏的方法.我的代码的jsFiddle就在这里.
// Router
App.Router.map(function(){
this.route('contributors');
this.route('contributor', {path: '/contributors/:contributor_id'});
});
App.ContributorsRoute = Ember.Route.extend({
model: function() {
return App.Contributor.all();
},
});
App.ContributorRoute = Ember.Route.extend({
renderTemplate: function() {
this.render('contributor', {
outlet: 'modalOutlet'
});
}
});
<script type="text/x-handlebars" data-template-name="application">
<nav>
{{#linkTo "index"}}Home{{/linkTo}}
{{#linkTo "contributors"}}Contributors{{/linkTo}}
</nav>
<div style='padding:5px;margin:5px;border:1px dotted red;'>
Default Outlet
{{outlet}}
</div>
<div style='padding:5px;margin:5px;border:1px dotted blue;'>
modalOutlet
{{outlet modalOutlet}}
</div>
</script>
Run Code Online (Sandbox Code Playgroud) 我没有使用Ember Data,并且在我的Model中有一个ajax调用来从远程源提取数据.在我成功从API接收数据后,我想根据类别对其进行排序/过滤.我的计划是,一旦从模型中获取数据,我就可以通过控制器管理数据的过滤状态.
我的问题是因为获取模型中的数据是异步的,我无法在控制器中调用一个方法来过滤/排序要在模板中显示的数据.
我的代码的相关部分,在我的jsfiddle下面.在我的模板迭代中,issue_list我可以轻松地显示信息.但是,我想迭代categorized_issues数组...我不知道issue_list数组何时真的被设置,所以我可以调用categorizeIssuesController 的方法.
// Default Route for /issues
App.IssuesIndexRoute = Ember.Route.extend({
setupController: function() {
var issues = App.Issue.all(25);
this.controllerFor('issues').processIssues(issues);
}
});
// Model
App.Issue = Ember.Object.extend({});
App.Issue.reopenClass({
// Fetch all issues from the ajax endpoint.
// Won't work on the JS fiddle
all: function() {
var issues = [];
$.ajax({
url: "http://localhost:3000/issues.json",
dataType: 'json',
}).then(function(response) {
response.issues.forEach(function(issue) {
issues.addObject(App.Issue.create(issue));
}, this);
});
return issues;
},
}); …Run Code Online (Sandbox Code Playgroud) ember.js ×3
javascript ×3
php ×3
apache ×1
browser ×1
mysql ×1
performance ×1
profiling ×1
todomvc ×1