小编Way*_*Kao的帖子

JavaScript私有方法

要使用公共方法创建JavaScript类,我会执行以下操作:

function Restaurant() {}

Restaurant.prototype.buy_food = function(){
   // something here
}

Restaurant.prototype.use_restroom = function(){
   // something here
}
Run Code Online (Sandbox Code Playgroud)

这样我班级的用户可以:

var restaurant = new Restaurant();
restaurant.buy_food();
restaurant.use_restroom();
Run Code Online (Sandbox Code Playgroud)

如何创建一个可由buy_fooduse_restroom方法调用的私有方法,但不能由类的用户创建外部方法?

换句话说,我希望我的方法实现能够:

Restaurant.prototype.use_restroom = function() {
   this.private_stuff();
}
Run Code Online (Sandbox Code Playgroud)

但这不应该奏效:

var r = new Restaurant();
r.private_stuff();
Run Code Online (Sandbox Code Playgroud)

我如何定义private_stuff为私有方法,所以这两个都适用?

我已经阅读了Doug Crockford的几次写法,但看起来似乎不能通过公共方法调用"私有"方法,并且可以在外部调用"特权"方法.

javascript oop private-methods

454
推荐指数
12
解决办法
30万
查看次数

图像宽度/高度作为属性还是在CSS中?

指定图像高度和宽度的"正确"语义方式是什么?在CSS ...

width:15px;
Run Code Online (Sandbox Code Playgroud)

或内联......

<img width="15"
Run Code Online (Sandbox Code Playgroud)

CSS似乎是放置视觉信息的正确位置.另一方面,很少有人认为图像"src"不应该被指定为属性,并且高度/宽度看起来像二进制图像数据那样与"src"相关联.

(是的,我从技术的,最终用户的角度来看,这无关紧要.)

html css

95
推荐指数
7
解决办法
9万
查看次数

Rails每请求哈希?

有没有办法在Rails中缓存每个请求数据?对于给定的Rails/mongrel请求,我有一个半昂贵的操作的结果,我想在该请求中多次访问.是否存在可以存储和访问此类数据的哈希?

它需要相当全局,并且可以从视图,控制器和库中访问,例如Rails.cache和I18n.

如果这就是它需要的话,我可以做一些猴子修补.

  • Memcached不起作用,因为它将在请求之间共享,这是我不想要的.
  • 同样地,全局变量不起作用,因为不同的请求将共享相同的数据,这不是我想要的.
  • 实例变量不起作用,因为我想从不同的类中访问数据.

ruby-on-rails

15
推荐指数
2
解决办法
4194
查看次数

CodeIgniter或PHP等效的Rails部分和模板

在CodeIgniter中,或核心PHP; 是否有相当于Rails的视图部分和模板?

部分会让我在视图中渲染另一个视图片段.我可以有一个共同的navbar.php观点,我可以指向我的homepage.php观点.模板将在一个位置定义HTML页面的整体shell,并让每个视图只填充正文.

我在CodeIgniter文档中找到的最接近的东西是加载多个视图,其中在控制器中按顺序呈现多个视图.在控制器内部控制我的页面的视觉外观似乎很奇怪.(即移动导航栏我的设计师必须编辑控制器).

我一直在寻找堆栈溢出的PHP方法来实现这一目标.我找到了这个页面,它讨论了用ob_start模拟部分.这是CodeIgniter中推荐的方法吗?

php codeigniter partials

6
推荐指数
2
解决办法
7105
查看次数

ASP.NET MVC自动解码来自AJAX的JSON编码参数

当我的JavaScript代码使用AJAX调用ASP.NET MVC方法时,它会传递JSON中的值.例如:

var request = new XMLHttpRequest();
request.open("GET", "http://www.awesome.com/DoSomething?param1=%22some%20string%22&param2=1234", true);  // parameter string created with JSON.stringify
Run Code Online (Sandbox Code Playgroud)

要么

var request = new XMLHttpRequest();
request.open("POST", "http://www.awesome.com/DoSomething", true);
// set some headers
request.send("param1=%22some%20string%22&param2=1234");  // parameter string created with JSON.stringify
Run Code Online (Sandbox Code Playgroud)

在ASP.NET MVC方面,我有我的方法来处理调用:

public void DoSomething(string param1, string param2) {
Run Code Online (Sandbox Code Playgroud)

糟糕的是param1被引号括起来:

"some string"
Run Code Online (Sandbox Code Playgroud)

更糟糕的是param2是字符串:

1234
Run Code Online (Sandbox Code Playgroud)

当我真的想要将值作为整数时.所以,我要做的第一件事是使用DataContractJsonSerializer来解码这些小狗,所以我的字符串没有引号,我的第二个字符串被转换为int.前一两次也不算太糟糕,但是每个AJAX动作都需要做旧.

理想情况下,拥有如下签名非常棒:

public void DoSomething(string param1, int param2)
Run Code Online (Sandbox Code Playgroud)

我可以直接跳入并使用我的值而不用担心JSON解码,就像非AJAX操作一样.

有没有办法做到这一点?

asp.net-mvc json

5
推荐指数
1
解决办法
4929
查看次数

加速gcc中的虚函数调用

使用gprof分析我的C++代码,我发现我的大部分时间花在一遍又一遍地调用一个虚拟方法上.该方法本身很短,如果它不是虚拟的,可能会内联.

有什么方法可以加快这一点,而不是将其重写为不是虚拟的?

c++ virtual-functions gprof

5
推荐指数
5
解决办法
2399
查看次数