避免因吊装造成的滞后

时间:2012-09-03 21:52:33

标签: javascript hoisting

我想记录'tapped'并尽快执行HUD,但是oauth_upload_photo导致它滞后(显然是因为提升)。我怎样才能立即拍摄HUD?

var submit_post = function submit_post(){

    console.log('tapped');

    // Show HUD
    plugins.navigationBar.hideRightButton();
    var hud = document.getElementById("hud");
    hud.style.display = 'block';    

    // Get the image
    var image = document.getElementById('myImage');
    var imageURI = image.src;

    // Get the caption from the textarea
    var cap = document.getElementById('tar');
    var caption = cap.value;

    // Call upload photo
    oauth_upload_photo(imageURI,caption);

};

1 个答案:

答案 0 :(得分:1)

您的问题(在我们能够理解您实际询问的内容之前需要更多解释)与javascript变量提升无关。所有提升都会导致在函数顶部定义变量,无论它们的初始声明位于函数中的哪个位置。它不会改变任何语句的执行顺序。

此外,在某些浏览器中,console.log()不能保证完全同步,并且日志窗口中的数据显示也不一定是立即的。在实际记录之前有时会有延迟。我不知道这是否是由跨进程边界的数据编组,一般重绘逻辑或其他一些内部实现问题引起的。

您可能还想更改此内容:

var submit_post = function submit_post(){

到此:

var submit_post = function (){

甚至是这样:

function submit_post() {

所以你不要双重定义相同的符号。