日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【JQuery】初始化页面当异步加载时构建页面元素的顺序

發布時間:2023/12/9 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【JQuery】初始化页面当异步加载时构建页面元素的顺序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今日幫同事看JQuery頁面初始化的一個問題時,由于自己沒怎么了解過JQuery,所以遇到了一點小麻煩,實現的效果就是初始化頁面時,默認選中頁面里某表格數據集的某行數據,這種問題,在Java\Delphi等語言里實現起來蠻容易,心想,JQuery里應該也還是容易的,這種小玩意兒不可能沒提供吧~查了下API,嗯,的確對于JQ還是小菜一碟的,使用如下代碼即可:

?

$("#JQGrid").setSelection(Rowid,?true);?????

?

目前整個頁面的構建都基于自寫的JS文件去構建的,所以把上面這代碼加在了理所當然初始化的地方,結果刷新沒效,后來挪步到好多地方,還是沒效果,this is why?

首先肯定的是HTML的JS文件的導入先后順序是沒錯的,HTML按從上到下加載JS的原則,肯定先導入JQuery核心JS文件,然后最后附加自寫的JS文件;

瀏覽了一遍.html文件,基本沒錯,那么問題還是出自于自寫的JS上

?

由于JS異步調用了一Java后臺編寫的獲取數據的方法,此時基本大概猜到了,應該是這異步加載順序搞得鬼

接著加alert一步步跟蹤,果然發現,當程序加載執行js時,當調用了一個function的異步方法之后,如你直接拿來用或者哪怕放在JS文件的最后,那也是無用的,因為異步調用還沒返回數據,JS已經執行完了或者直接拋某個異步function里的某個值undefined,這就是代碼沒生效的最終原因;

?

其實這種問題,就如同Delphi、C#等高級語言里不能跨線程調用有異曲同工之妙

?

所以解決思路就是:

將代碼放置在異步調用的function里,當調用完之后,無論頁面其它是否執行初始化完畢,反正另一線程都會繼續調用這個function,問題解決!

?

轉載于:https://www.cnblogs.com/sunshinewu85/archive/2011/07/17/2108958.html

總結

以上是生活随笔為你收集整理的【JQuery】初始化页面当异步加载时构建页面元素的顺序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。