小编gre*_*olf的帖子

在asp.net-mvc中,如何在不降低用户体验的情况下运行昂贵的操作?

我有一个asp.net-mvc网站,我正在为我的ORM使用nhibernate.

我有一个当前的控制器操作,它执行基本的CRUD更新(从数据库中查询项目,然后更新一堆值并提交回db表).然后它向客户端返回一个简单的json响应,以指示成功或错误.

 public ActionResult UpdateEntity(MyEntity newEntity)
 {
      var existingEntity = GetFromRepository(newEntity.Id);
      UpdateExistingEntity(newEntity, existingEntity);
      return Json(SuccessMessage);
 }
Run Code Online (Sandbox Code Playgroud)

在某些情况下(假设提交成功并且如果我的对象中的某些字段发生了变化)我现在想要触发一些额外的操作(比如通过电子邮件发送一堆人并运行一些生成报告的代码)但我不想放慢速度降低正在进行更新的人的用户体验.所以我担心的是,如果我这样做:

 public ActionResult UpdateEntity(MyEntity newEntity)
 {
      var existingEntity = GetFromRepository(newEntity.Id);
      bool keyFieldsHaveChanged = UpdateExistingEntity(newEntity, existingEntity);
      if (keyFieldsHaveChanged)
     {
          GenerateEmails();
          GenerateReports();
     }
    return Json(SuccessMessage);
 }
Run Code Online (Sandbox Code Playgroud)

这对于某人更新的用户体验来说太慢了.无论如何(asyngc?)有一个昂贵的操作被控制器动作触发但是没有控制器动作因此而减慢?

c# nhibernate asp.net-mvc

21
推荐指数
3
解决办法
8738
查看次数

南希(C#):如何获取我的帖子数据?

我正在使用Corona SDK将数据发布到我的C#服务器:

headers["Content-Type"] = "application/x-www-form-urlencoded"
headers["Accept-Language"] = "en-US"

local body = "color=red&size=small"

local params = {}
params.headers = headers
params.body = body

network.request( host .. "/UpdateHand", "POST", nwListener, params )
Run Code Online (Sandbox Code Playgroud)

我在服务器上收到一条消息:

  Post["/UpdateHand"] = x =>
        {
            Console.WriteLine("Received ...");
            return "Ok";
        };
Run Code Online (Sandbox Code Playgroud)

但是当我检查数据时(当我在其上放置一个断点)时,我看不到我的数据所在的位置(即params.body或params.headers).我该如何提取这些信息?

我应该根据Corona上的文档正确发布它:http://docs.coronalabs.com/daily/api/library/network/request.html

c# lua coronasdk nancy

21
推荐指数
3
解决办法
2万
查看次数

Lua的标准(或最佳支持)大数(任意精度)库是什么?

我正在处理那些我无法完成的大数字.使用Lua的标准数学库,似乎没有方便的方法来保持精度超过某些内部限制.我还看到有几个库可以加载以使用大数字:

  1. http://oss.digirati.com.br/luabignum/
  2. http://www.tc.umn.edu/~ringx004/mapm-main.html
  3. http://lua-users.org/lists/lua-l/2002-02/msg00312.html(可能与#2相同)
  4. http://www.gammon.com.au/scripts/doc.php?general=lua_bc(但我找不到任何来源)

此外,如果已建立绑定,则可以从Lua调用C 中的许多库.

您是否有过使用这些库中的一个或多个的经验?

math precision lua bignum

20
推荐指数
4
解决办法
7598
查看次数

如何正确地重复使用卷曲手柄

我想正确地重用一个curl句柄,这样它就不会给我错误和正常的功能.

假设我有这段代码:

    CURL *curl;

    curl_global_init(CURL_GLOBAL_ALL);
    curl = curl_easy_init();

    curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/5.0...");
    curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com");
    curl_easy_perform(curl);

    curl_easy_setopt(curl, CURLOPT_URL, "http://www.bbc.com");
    curl_easy_perform(curl);

    curl_easy_cleanup(curl);
    curl_global_cleanup();
Run Code Online (Sandbox Code Playgroud)

这是重用卷曲手柄的好方法吗?或者我需要curl_easy_reset()在那个句柄上使用?

我也很感激,如果有人建议你应该避免卷曲.也许有人可以给我一个已经存在的信息来源的链接?

c curl handle libcurl

20
推荐指数
3
解决办法
2万
查看次数

关于AT&T x86语法设计的问题

  1. 任何人都可以向我解释为什么AT&T语法中的每个常量前面都有一个"$"?
  2. 为什么所有寄存器都有'%'?
  3. 这只是让我做很多蹩脚打字的另一种尝试吗?
  4. 另外,我是唯一一个发现:16(%esp)真的违反直觉[esp+16]吗?
  5. 我知道它编译成同样的东西,但为什么有人想要输入很多'$'和'%'而不需要? - 为什么GNU选择此语法作为默认语法?
  6. 另一件事,为什么at&t语法中的每条指令前面都有一个:l? - 我知道它的操作数大小,但为什么不让汇编程序弄清楚呢?(我是否想要在不是那么大的操作数上做一个movl?)
  7. 最后一件事:为什么mov参数倒置了?

是不是合乎逻辑:

eax = 5
mov eax, 5
Run Code Online (Sandbox Code Playgroud)

at at&t是:

mov 5, eax
5 = a (? wait what ?)
Run Code Online (Sandbox Code Playgroud)

注意:我不是想乱跑.我只是不明白他们所做的设计选择,我试图了解他们为什么做了他们所做的.

x86 assembly att intel-syntax

18
推荐指数
3
解决办法
1894
查看次数

如何在RxJava中的Observable中处理map()中的异常

我想做这个:

Observable.just(bitmap)
            .map(new Func1<Bitmap, File>() {
                @Override
                public File call(Bitmap photoBitmap) {

                    //File creation throws IOException, 
                    //I just want it to hit the onError() inside subscribe()

                    File photoFile = new File(App.getAppContext().getCacheDir(), "userprofilepic_temp.jpg");
                    if(photoFile.isFile()) {//delete the file first if it exists otherwise the new file won't be created
                        photoFile.delete();
                    }
                    photoFile.createNewFile(); //saves the file in the cache dir

                    FileOutputStream fos = new FileOutputStream(photoFile);
                    photoBitmap.compress(Bitmap.CompressFormat.JPEG, 90, fos);//jpeg format
                    fos.close();

                    return photoFile;

                }
            })
            .subscribe(//continue implementation...);
Run Code Online (Sandbox Code Playgroud)

基本上在call()方法中,它可以抛出异常.如何让Observer处理它onError().或者这不是思考这个问题的正确方法吗?

java android rx-java rx-android

18
推荐指数
2
解决办法
2万
查看次数

通过引用传递智能指针

智能指针通常很小,因此通过值传递不是问题,但是将引用传递给它们是否有任何问题; 或者更确切地说是否有特定情况不得这样做?

我正在编写一个包装器库,我的几个类将智能指针对象包装在底层库中...我的类不是智能指针,但API当前通过值传递智能指针对象.

例如当前代码:

void class::method(const AnimalPtr pAnimal) { ... }
Run Code Online (Sandbox Code Playgroud)

void class::method(const MyAnimal &animal){...}
Run Code Online (Sandbox Code Playgroud)

MyAnimal我的新包装类封装在哪里AnimalPtr.

无法保证Wrapper类有一天不会超越包装智能指针,所以通过值传递让我感到紧张.

c++ visual-studio-2005

17
推荐指数
1
解决办法
9672
查看次数

从long long转换为int,另一种转换回c ++

如何从long long转换为int,另一种转换回c ++?也有长长的特性,特别是它的最大尺寸,谢谢提前..

c++ int casting long-integer

16
推荐指数
2
解决办法
7万
查看次数

C++字符串数组排序

我在尝试从C++库中找出排序函数并尝试从az对这个字符串数组进行排序时遇到了很多麻烦,请帮助!

我被告知使用这个,但我无法弄清楚我做错了什么.

// std::sort(stringarray.begin(), stringarray.end());
Run Code Online (Sandbox Code Playgroud)
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main()
{
  int z = 0;
  string name[] = {"john", "bobby", "dear", 
                   "test1", "catherine", "nomi", 
                   "shinta", "martin", "abe", 
                   "may", "zeno", "zack", "angeal", "gabby"};

  sort(name[0],name[z]);

  for(int y = 0; y < z; y++)
  {
    cout << name[z] << endl;
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ arrays sorting

16
推荐指数
4
解决办法
9万
查看次数

使用大括号初始化程序,实际上"实例化"一个抽象类类型?

今天我偶然发现了以下问题.有人太喜欢大括号初始化器并且不小心试图实例化接口类.忍受我:

#include <iostream>

class IFoo
{
public:
   virtual ~IFoo() = default;
   virtual bool getFoo() const = 0;
};

void processFoo(const IFoo &fooImpl)
{
    bool foo = fooImpl.getFoo();
    std::cout << "got foo " << foo << std::endl;
}

int main()
{
   processFoo({});  // <- why is this valid?!
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我一直期望编译器会发出类似于在尝试调用IFoo()或调用某些东西时所获得的错误IFoo{}.但是,上面的代码在没有警告的情况下进行编译(在gcc 6.2上),但是当你尝试调用该方法时,很明显会以" 纯虚方法调用 " 结束getFoo().实例.

有人可以向我解释那里发生了什么事吗?

c++ abstract-class c++11

16
推荐指数
1
解决办法
234
查看次数