2013-05-01 77 views
1

因此,我在WT項目中嵌入了一個Ace編輯器,並將Ace.js文件的副本加載到它中,作爲測試以查看它的外觀。負載很好,所以現在我試圖保存它,並且我注意到我的保存功能沒有被調用。經過一段時間的調試後,我注意到如果我試圖保存的文件大於70000-80000個字符,並且被調用的很好,並且如果文件較小,則會傳遞數據。如何在嘗試保存大文件時繞過此限制? ,我在WT項目運行的代碼可以看到下面,就如何在這裏Using ACE with WT如何保存WT編輯器中的所有文本?

WText *editor; 

MyClass::MyClass(const WEnvironment& env) 
: WApplication(env) 
{ 
wApp->require("lib/src/ace.js"); 
// A WContainerWidget is rendered as a div 
editor = new WText("function(){\n hello.abc();\n}\n", root()); 
editor->setInline(false); 
editor->resize(500, 500); 

std::string editor_ref = editor->jsRef(); // is a text string that will be the element when executed in JS 

std::string command = 
    editor_ref + ".editor = ace.edit(" + editor_ref + ");" + 
    editor_ref + ".editor.setTheme(\"ace/theme/monokai\");" + 
    editor_ref + ".editor.getSession().setMode(\"ace/mode/javascript\");"; 

editor->doJavaScript(command);  

JSignal <std::string> *jsignal = new JSignal<std::string>(editor, "textChanged"); 
jsignal->connect(this, &MyClass::textChanged); 

WPushButton *b = new WPushButton("Save", root()); 

command = "function(object, event) {" + 
    jsignal->createCall(editor_ref + ".editor.getValue()") + 
    ";}"; 

b->clicked().connect(command); 
} 

void MyClass::textChanged(std::string incoming) 
{ 

} 

它嵌入到現在,上面的代碼,當按下保存按鈕框TextChanged函數會被更多的細節。但是,如果加載大文件,我使用了下面的函數,並通過調用它來替換「function(){\ n hello.abc(); \ n} \ n」。

​​

如前所述,我加載了Ace.js,它的長度約爲15,000行。這導致我的保存呼叫失敗。雖然我確信任何超過80,000個字符的文件都會導致它失敗。先謝謝你!

回答

0

可能需要增加wt_config.xml中的最大請求大小。默認是128K。

+0

我目前沒有在我的項目中使用wt_config.xml,我會嘗試添加它並設置最大請求大小。 – user2115945 2013-05-07 19:14:05

相關問題