`
qiezi
  • 浏览: 500068 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
最近在使用RoR做项目,体会到了快速开发的乐趣,也遇到了一些困难,其中一个就是redirect_to。我遇到的一个问题是,当使用Ajax更新页面局部内容时,session内容已经过期,这时需要整个页面跳转到登录页面。直接调用redirect_to会使局部内容显示成登录页面,它是在HTTP头里写入重定向参数来实现的。在我这里的特殊情况下,正确的做法是让它执行一个包含在<script>标记中的脚本,在脚本中更改窗口location值来跳转。不过RoR中使用Ajax时,会根据:update参数来决定是使用Updater还是Request。如果使用Updater方式,则应返回一段纯脚本 ...
首先写一个简单的webservice:using System;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]public class Service : System.Web.Services.WebService{    [WebMethod] ...
rails 1.1以上版本提供了强大优雅的RJS,可能执行一个请求多个更新。有些时候我们并不需要请求服务器,只想在浏览器上执行某些脚本更新,但又想使用RJS。所以为RoR增加了这项功能。使用方法:<script language="javascript"><%= render :update do |page|  page.define_action 'test_action' do    page.call_script <<-EOS      alert(params.comment.title);      alert(params. ...
Caching模块用来实现caches_action/caches_page/fragment,普通用法没发现什么问题,问题在于使用下面的例子时,它不能缓存到正确的位置:class CacheController < ApplicationController  caches_action :cache_one  caches_page   :cache_two  #endclass TestController < ApplicationController  def one    render :inline => <<-EOSTest::one<b ...
代码比较简单:module ActionController #:nodoc:  class CheckGroupError < ActionControllerError #:nodoc:    attr_reader :group_name    def initialize(group_name)      @group_name = group_name    end  end    class CheckRoleError < ActionControllerError #:nodoc:    attr_reader :role_name    def initial ...
Login Engine是非常好用的一个登录engine,不过也有个缺点,它把用户信息缓存在session里。如果用户每次修改完自己的资料,都把session更新的话,自然是不会有什么数据不同步的问题。不过试想这样一种情况:1、用户A登录;用户A的信息将保存在session[:user]里。2、管理员操作用户A,修改用户A的资料并保存。3、用户A刷新页面。 如果显示用户资料是从session[:user]读取的话,显然用户A看到的是老的资料。正确的做法是管理员修改用户资料以后,把用户session里的内容也更新,当然这个实施起来有些困难,目前看来无法由用户ID获得对应的session。 ...
矩阵就不用再解释了,写成泛型主要是为了几个方便:1、方便在栈上分配空间。由于维度在编译期已知,所以可以做到在栈上分配空间。当然如果这个对象是new出来的,自然是在堆上分配,这里说的是在栈上分配这个对象 ...
D语言里面,可以通过version(Windows)来兼容COM接口,不过对于__uuidof却没有相应实现。 原始COM接口定义类似这样(找个简单的): [     local,     object,     uuid(594f31d0-7f19-11d0-b194-00a0c90dc8bf) ] interface IRpcChannelBuffer2 : IRpcChannelBuffer {     HRESULT GetProtocolVersion     (         [in,out] DWORD *pdwVersion     ); } VC++中可通过__ ...
简单测试了一下,语法比ruby稍罗嗦一点,不过也算是很简洁了。在WINDOWS下执行,遇到个小BUG,grails.bat第4行:if "%GRAILS_HOME"=="" goto grailsHomeNotSet是错误的,改成if "%GRAILS_HOME%"=="" goto grailsHomeNotSet就可以了。后面也有点小问题,干脆在LINUX下测试。照着Quick Start做了一下,还算顺利,不过例子怎么只给了个list呢?怎么也得把create/update/delete给完成嘛。猜着写了 ...
周末抽空做了点小测试,根据http://blog.vckbase.com/jzhang/archive/2006/03/28/18807.html中m网友修改的算法,python版本中读取所有行以后就做一个排序,再去除重复项。这个算法在我的机器上执行时间是1735ms左右,属于python版本中最快的一个。D版本暂还没想到有更优化的做法,D在处理以char[]作key的关联数组时,判断方法是先判断hash,如果hash相等,则继续做字符串判断。它执行时间是1120ms左右。以D版本为基础,自己写了一个C++的Email类:class Email{private:        string ...
实际上不是全面测试性能。应该这么说:使用一个你熟悉的语言,用它写出一个高效的版本(做下面那件事)。不小心读到一个帖子:http://blog.vckbase.com/jzhang/archive/2006/03/28/18807.html看到C++竟然被比下去了,自然不是很舒服,毕竟C++对于C并没有太大的性能上的降低,而python是C写的(指Cpython实现),自然不会高过C。(废话,C基本上接近汇编效率了)可惜C++又很难找出这么高效的实现,STL效率还是低了些(为什么?一直以为它很高效,用得比较放心)。最近一直比较关注D语言,于是用D语言来测试一下。代码如下: 1 import  ...
标题:Proposal: Operator overloading without temporaries 作者:Don Clugston 正文: Background: Operator overloading, in the form it exists in C++ and currently in D, inherently results in sub-optimal code, because it always results in unnecessary temporary objects being created. For example, X = A - ( ...
Itanium C++ ABI ($Revision: 1.86 $)http://www.codesourcery.com/cxx-abi/abi.htmlC++ ABI Summaryhttp://www.codesourcery.com/cxx-abi/C++ ABI for IA-64: Code and Implementation Exampleshttp://www.codesourcery.com/cxx-abi/abi-examples.htmlC++ Vtable Examplehttp://www.codesourcery.com/cxx-abi/cxx-vtable ...
不知道什么时候加入了“函数模板参数类型推导”和“类模板(改进型)”,文档中也是悄悄出现了。 函数模板参数类型推导: template Square(T){ T Square(T t) { return t * t; }} 以前调用时必须显式实例化: writefln("The square of %s is %s", 3, Square!(int)(3));现在可以使用自动推导了:writefln("The square of %s is %s", 3, Square(3)); // T is deduced to be int ...

从C++到D

    博客分类:
  • D
从http://www.digitalmars.com/d/cpptod.html摘录 1、构造函数: c++: 1 class Foo 2 { 3     Foo(int x);  4 }; d: 1 class Foo 2 { 3     this(int x) { }  4 } 2、基类初始化 c++: 1 class A { A() { } };
Global site tag (gtag.js) - Google Analytics