在我的$(document).ready(function () {
$.ajax({
url: 'MenuHandler.ashx',
method: 'get',
datatype: 'json',
success: function (data) {
data = JSON.parse(data);
buildmenu($('.menu'), data);
$('.menu').menu();
}
})
var lastliElement; // if more occurance append to the last element
function buildmenu(parent, items) {
var tabOccurance = [];
$.each(items, function () {
var nbOccurnace = countOccurance(this.MenuText, items);
// search if occurance text alredy exist
if (tabOccurance.indexOf(this.MenuText) == -1) { // this doesn't work on ecma6 and above
var length = this.ParentID == null ? this.List.length : nbOccurnace;
var li = $('<li><a href="Cars/Acura/car.aspx">' + this.MenuText + '(' + length + ')' + '</a></li>');
lastliElement = li;
if (!this.Active) {
li.addclass('ui-state-disabled');
}
li.appendTo(parent);
}
if (nbOccurnace > 1)
tabOccurance.push(this.MenuText);
if (this.List && this.List.length > 0) {
var ul = $('<ul></ul>');
ul.appendTo(lastliElement);
buildmenu(ul, this.List);
}
});
}
// to conunt occurance of menuText
function countOccurance(MenuText, list) {
var count = 0
$.each(list, function () {
if (this.MenuText === MenuText)
count++;
});
return count;
}
文件中,我有一行:
$this->load->view('ViewData',$data);
// change to
$this->load->view('EditView',$data);
此函数#
# A virtual host using mix of IP-, name-, and port-based configuration
#
upstream admanager.oneplatform.build {
server localhost:8001;
}
server {
listen 80 default_server;
server_name _;
root /opt/admanager1;
index index.html;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
location /newuser/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:8001/newuser/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_redirect off;
}
location /update/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:8001/update/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_redirect off;
}
}
只是将一条消息写入控制台,以便我知道它已被调用。
使用.cpp
进行构建时,这一切都正常,但在使用推荐的发布版emscripten_run_script("callOut();console.error('Hello');");
进行编译时不会执行任何操作。我甚至无法在javascript输出中找到“hello”文本。
它应该像这样工作吗?有什么方法可以在发布版本中获得此调用吗?
答案 0 :(得分:1)
问题是我没有等待emscripten代码在调用之前完全初始化。你应该等到调用emscripten main()
函数,然后才知道它已经准备好了。
使用-O2
时问题变得更糟,因为emcc创建了一个单独的内存初始化文件,必须在emscripten代码准备就绪之前加载。
答案 1 :(得分:0)
emscripten_run_script的替代方法是使用EM_ASM宏。我从来没有遇到过这些在优化版本中消失的问题。
所以你的例子相当于
EM_ASM({
callOut();
console.error("Hello");
});