森林遭砍伐…野生黑熊闖印度菜市場見人就咬 6人送醫治療

摘錄自2020年8月24日聯合報報導

印度奧迪沙邦(Odisha)巴瓦尼帕特納市(Bhawanipatna)一隻野生黑熊,上周五(21日)突然闖入菜市場襲擊市民,造成至少6人受傷,其中2人情況嚴重。經過26小時的搜捕,當局並未抓到傷人的黑熊,判斷可能已經逃回森林中。

當地居民表示,周四(20日)晚已有人看見黑熊在附近嚎叫,但沒有作出攻擊性行為,隔日上午菜市場開始愈來愈多人,牠突然襲擊居民,估計是因為當時牠驚嚇過度而自衛。

當地官員庫瑪爾(Nitish Kumar)表示,希望最終能捉住黑熊注射鎮靜劑,然後將牠放回森林。庫瑪爾指出,今次已是本月第二宗類似的襲擊事件,相信是因為近年森林屢遭砍伐,野生動物的棲息地縮小導致與人類的衝突愈來愈多有關。

※ 本文與 行政院農業委員會 林務局   合作刊登

土地利用
國際新聞
印度
黑熊
棲息地破壞
處變不驚──與野生動物相遇
人與動物衝突事件簿

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

網頁設計最專業,超強功能平台可客製化

※產品缺大量曝光嗎?你需要的是一流包裝設計!

加州野火燒掉6個紐約市 氣候轉涼有助控制

摘錄自2020年8月25日世界日報、26日中央社報導

加州全境過去一周遭逢650場野火侵襲,許多火災源自15日以來至少1萬2000次閃電。美國有線電視新聞網(CNN)報導,加州境內野火已燒掉50萬公頃土地,比六個紐約市還大,摧毀1400棟建築物。加州23日出現數百場林火,近25萬人收到撤離令和警告,死亡人數增至七人。

規模最大的兩處野火分別為聖荷西以東的「SCU閃電綜合大火」(SCU Lightning Complex Fire),以及灣區北部的「LNU閃電綜合大火」(LNU Lightning Complex Fire),各燒掉14萬6900公頃和14萬2813公頃土地,名列有紀錄以來前三大野火。

聖他克魯兹大火是三場複合大火之一,這三起群火全都因閃電而起,發生在舊金山灣區地帶。而受到強風影響,消防人員救災進度緩慢,甚至一度因為不尋常溫暖天氣暫停。今天(26日)天氣轉涼,有助消防人員對抗州內野火。

路透社報導,較高的相對濕度和較為和緩的風勢,讓逾1萬4000名打火弟兄得以闢出防火線。加州森林防火廳救火隊長布倫頓(Mark Brunton)針對聖克魯斯(Santa Cruz)以北一處火場表示:「天氣真的很配合。我們正在穩定取得大量新資源。」

以往不受野火影響的沿海雨林地區,如今也不尋常地爆出大火,部分當局將矛頭指向氣候變遷。州內史上五大野火,有四場是在過去三年發生,最大一場是2018年的「門多西諾複合大火」(Mendocino Complex fire),燒焦了18萬5800公頃的土地。

氣候變遷
國際新聞
加州
美國
森林火災

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※超省錢租車方案

※別再煩惱如何寫文案,掌握八大原則!

※回頭車貨運收費標準

※教你寫出一流的銷售文案?

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

大空間+逆天配置 這款十多萬自主SUV值得購買嗎

5T也沒有小馬拉大車的感覺,搭配手動變速箱感覺很棒,就是懸挂偏硬了點。4月份提的車,現在7500公里,大多數是市區開,油耗8L左右,是比較滿意的,聽說自動擋的油耗還蠻高的。車主:飛上晴天購買車型:2016款 1。5TI 手動尊貴型裸車價格:9。

自主品牌SUV在這幾年異軍突起,其中“華麗的數據+大空間+豐富配置”是其中的關鍵詞,要是沒了這幾樣重要的因素,可進不了國人的購車選擇中,除了之前鬧的沸沸揚揚的比亞迪唐之外,比亞迪宋也是個不容小覷的傢伙,每個月的銷量妥妥的1萬多,車主們到底是怎麼評價它的呢?

比亞迪-宋

指導價:8.99-14.99萬

車主:益達-本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

※推薦評價好的iphone維修中心

十幾萬買SUV真的需要選更貴的四驅版嗎?

另一方面,配有四驅系統的城市SUV,其綜合油耗也會隨之提高。四驅系統的結構複雜程度比較高,必然會直接增大動力損耗,而且四驅城市SUV的整備質量普遍更重,這些產品因素都會帶來不經濟的燃油效率。然而,隨着智能四驅系統的深入普及,許多城市SUV已經可以自主選擇兩驅或者四驅模式行駛,因此,在油耗方面,四驅城市SUV與兩驅版本的差距正在拉近。

城市SUV之所以能在市場大受熱捧,主要是因為其空間、視野以及通過性的優勢,非常切合中國消費者的需求。但話又說回來,如果是一台擁有四驅系統的城市SUV,我們真的需要嗎?而答案相信在不同人的眼中都不盡相同,接下來讓解答你們的疑問。

有四驅就能越野?圖樣圖森破

直到今天,仍然有不少消費者認為所有SUV都是全能越野的能手,但實際上,市面上看得到的城市SUV基本上脫離了“越野“這個概念,換句話說,越野性能已經不再是它們城市SUV強調的產品點,舒適與穩定才是城市SUV才應該具備的能力。

所以說城市SUV的越野性能根本就是一個假命題,且根本無法與傳統硬派越野SUV相提並論。更何況,大家所津津樂道的四驅系統也並不一定具有越野性能。目前而言,主流的城市SUV都是搭載了更加智能的適時四驅系統,榮威RX5、昂科威、翼虎等四驅車型均是此類型。另外,城市SUV多以多片離合器為主,而硬派越野SUV是採用机械差速器,無論抗熱性還是穩定性,前者的火候可比後者差遠啦。

城市SUV的四驅有什麼用?

既然城市SUV的四驅系統不能提供越野,那是不是就可以稱之為雞肋了?其實不然,搭載四驅系統的城市SUV還是對駕駛有一定幫助的。首當其沖的就是增強了SUV的行車穩定性,眾所周知,相比低重心的轎車,SUV的車身結構註定了較高的側翻事故率,而通過四驅系統可以將動力均勻地分配到四個車輪上,尤其又是在雨雪濕滑路面,四驅城市SUV可以大大降低輪胎打滑失控的情況,提升車輛過彎和操控的極限。

其次,相比兩驅,四驅城市SUV可以更容易地征服各種複雜路況,提高SUV的脫困能力。但請注意這與純粹的越野SUV有着本質的區別,一般也就只適用在普通凹凸不平的爛路,是萬萬學不得硬派SUV那般上山又下水的。

選擇四驅SUV前先考慮好

誠然,四驅系統確實對於城市SUV有所幫助,當然,這也意味着消費者選擇帶四驅的城市SUV,前提是得付出更高的購車成本。由於四驅系統技術含量較高,再加上捆綁各種高配置,導致四驅版本往往是一款車型的頂配版本,起碼要比低配的兩驅版本多出幾萬元不等,例如18.98萬的繽智四驅旗艦型,比售價16.38萬的兩驅豪華型足足多出了兩萬多元。

另一方面,配有四驅系統的城市SUV,其綜合油耗也會隨之提高。四驅系統的結構複雜程度比較高,必然會直接增大動力損耗,而且四驅城市SUV的整備質量普遍更重,這些產品因素都會帶來不經濟的燃油效率。然而,隨着智能四驅系統的深入普及,許多城市SUV已經可以自主選擇兩驅或者四驅模式行駛,因此,在油耗方面,四驅城市SUV與兩驅版本的差距正在拉近。

四驅城市SUV買還是不買?

四驅系統的取捨,說到底,還是根據自己的環境需求和購車預算作決定。雖然四驅功能的使用率不高,但有總比沒有好。特別是對於長期駕駛在雨雪天氣中的車輛,確實是能夠提供更優秀的行駛穩定性。抑或,經常跑一些爛路和濕滑泥濘路段,至少比起兩驅模式,理論上四驅系統在特殊環境下脫困能力更強大。當然,你還必須無條件接受它更昂貴的價格。

但對於如果常年行駛在城市道路,那麼四驅系統幾乎對你而言,充其量也只是做個象徵意義,與普通的兩驅城市SUV並無太大區別,反而還有可能不利於燃油經濟性。此時,兩驅車只要配備好ESp和合適的輪胎,已經足夠應付日常駕駛環境。

雖然四驅系統不如安全配置那麼有必要性,但依然有不少消費者挺重視四驅系統的作用,那麼下面就推薦幾款價格比較親民的帶四驅功能的城市SUV吧。

歐藍德 2016款 2.4L 四驅精英版 5座

指導價:18.98萬元

傳祺GS4 2017款 235T 自動四驅豪華智聯版

指導價:15.18萬元

繽智 2015款 1.8L CVT四驅旗艦型

指導價:18.28萬元

馬自達CX-4 2016款 2.5L 自動四驅藍天激情版

指導價:19.28萬元

本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

最低7.98萬起 本周的新款SUV都高端的嚇人!

最後才是產品收益相較過去應有更大的改善。在採訪環節的開頭,李春榮說:“今年是東風乘用車九年了,明年翻過去就是十年,我們經常說十年磨一劍,這個用在我們東風風神身上非常貼切。”可以看出在過去近十年的時間里,東風風神為產品質量打下了紮實穩固的基礎。

2017年第一周,不少廠家選擇了在這周時間內搶先發布新款車型。這一周新上市的車型僅有幾款,但都是值得考慮的貨色!其中最賣力的要數東風本田!

12月29日,武漢正寒風凜凜,而此時東風風神卻熱情絲毫不減。當天受邀參加國家信息中心、搜狐汽車共同舉辦的“中國本土品牌創新之旅”,來到了位於武漢的東風風神廠區,共同見證“2016年度第15萬台整車發運暨第10萬台發動機下線”儀式。而這,也可視為東風乘用車公司為“十三五”開局之年畫上了一個圓滿的句號。

在過去的11個月,東風乘用車公司累計銷售超13萬輛,而現今第15萬台整車發運,意味着東風風神將邁上年銷15萬輛台階,同比增長速近50%。從銷量數據上看,東風風神AX7、AX5、AX3等組成的SUV軍團貢獻最大,合計銷量超過十萬輛,其中明星車型東風風神AX7穩步站上月銷7000輛台階,並向月銷過萬挺進。另外在海外市場也作出了好成績,年銷量超1.5萬輛,同比增長近4倍,成績斐然。

隨着東風風神在技術研發以及生產製造體系的不斷投入,東風風神已經形成完善的發動機製造價值鏈。如今,東風風神的發動機銷量佔東風公司自主發動機整體銷量近50%,成為公司最大的自主品牌發動機製造陣地。目前,東風風神研發生產的發動機主要分為A、B、C三個系列平台,其中A系列包含A16、A14T等型號,而A14T正是東風風神目前主打的1.4T渦輪增壓發動機,在未來的規劃中A系列平台也將會以1.4L為主進行研發。

李春榮表示,要當中國品牌的主力軍,得有幾個方面,首先產品質量要好,質量不好就是“游擊隊”,這一點在AX5的誕生地東風風神常州工廠有所體現,具備國際一流水平的自動化生產線和智能生產管理系統,工廠的生產標準與設備均向合資品牌東風日產看齊。其次是銷量規模,目前東風乘用車在中國汽車市場排名第31位,自主品牌排名第17位,李春榮坦言道明年銷量要做到20萬輛。再者是產品構架,東風風神要成為主力軍,明年將要在轎車、SUV、高端轎車、新能源車、海外市場5個方面均衡發展。最後才是產品收益相較過去應有更大的改善。

在採訪環節的開頭,李春榮說:“今年是東風乘用車九年了,明年翻過去就是十年,我們經常說十年磨一劍,這個用在我們東風風神身上非常貼切。”可以看出在過去近十年的時間里,東風風神為產品質量打下了紮實穩固的基礎。這裏用“博觀而約取,厚積而薄發”這句話來形容目前的東風乘用車是最合適不過了。

俗話說,40不惑,50知天命。作為成立48年的大型汽車企業,東風就像一個成熟穩重的中年人,沒有更多刻意追求數據的漂亮,而是着重穩定可靠和節油。對汽車企業來說,質量是最本質的東西。“我們已經是中國品牌的生力軍,接下來明年我們希望成為中國品牌的主力軍。”東風乘用車總經理李春榮說道。

久違的重逢,路虎發現神行安吉之旅

“遙憐十景試春遊,東嶺迢迢一徑幽。記得碧門村口去,籃輿輕度到杭州”所形容正是此時此刻的場景,駕駛全新路虎發現神行踏上了前往安吉的路上到處都是鬱郁蔥蔥的竹林、陽光透過竹恭弘=叶 恭弘灑在馬路上、竹恭弘=叶 恭弘沙沙作響。

“發現神行”作為路虎在國內投放的一款重磅中型SUV,自上市之初便飽受關注。無奈當時進口版過高的售價使得許多喜歡它的消費者都望而卻步,而在與奇瑞捷豹路虎“聯婚”后價格比起進口版直接下降十多萬,這可讓很多崇尚路虎品牌的車友們對它產生了極大的興趣。那麼國產之後的路虎又可否保持與進口版同樣的出色品質呢,讓來帶你們一探究竟。

身為一台路虎,與生俱來的越野能力毋庸置疑,但更多的城市用戶購買SUV只是為了更好的都市駕乘,在鋪裝路面的駕駛神行同樣為我們交上了一份滿意的答卷。全時四驅系統,能根據道路的實際狀況,在兩驅以及四驅之間自由切換,當檢測到到前輪打滑時它能迅速將動力分配到後輪,讓車輛在雨天濕滑路面擁有更好的循跡性。

而更值得一提的當屬是路虎家族名聲在外的全地形反饋適應系統了,只需簡單點擊按鈕即可在普通、草地-砂礫-雪地、泥濘-車轍、沙土、岩石五大駕駛模式中任意切換,讓駕駛員不必具有專業技術,也可以輕鬆應對各種路況。

“發現神行”是奇瑞捷豹路虎的第二款車型,一輛擁有優異的公路性和同級最強的四驅系統的七座中型SUV,通過大量的高科技配置和先進的技術應用,為此次安吉之旅保駕護航。

本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

網頁設計最專業,超強功能平台可客製化

玩車教授洗車券兌換方法與注意事項

本券可在全國300餘個城市,20000餘家汽車超人服務門店通用,具體商戶以汽車超人平台為準。兌換流程:

感謝各位粉絲對玩車的支持

玩車洗車券是由汽車超人提供的“一分錢洗車券”,僅需一分錢就能做一次完整的洗車服務。洗車券使用時間為:2017年1月13日-2017年1月19日使用。本券可在全國300餘個城市,20000餘家汽車超人服務門店通用,具體商戶以汽車超人平台為準。

兌換流程:

本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

※教你寫出一流的銷售文案?

參加北汽幻樂會周年慶典,論優秀的品牌文化如何誕生?

對於這些原本素未謀面的車主,通過一次有趣的幻樂會活動之後大家便成了好朋友,一起玩耍一起交流幻速帶來的歡樂。而在活動晚宴上,廠家眾多大人物齊聚現場也是讓車主們驚訝,而北汽幻速也正式公布了幻樂會粉絲新名稱:“可樂”,譜寫了幻樂會的全新篇章。

就在2017年元旦的時候,小編受邀參加北汽幻速幻樂會的活動,說白了這就是一個由廠家組織的讓一些車主與幻速粉絲等人一起慶祝元旦並且參与遊戲娛樂的活動,有的人可能會疑惑,不去老實試車,參加車主聚會幹什麼?

其實對於一個優秀的品牌來說,用戶與企業之間的溝通十分重要,就像國內某車企總是說他們的產品是廣泛徵集廣大基盤用戶的意見后打造的一樣,其實對於幻速來說,也是一樣的道理,聽取用戶的聲音才是正確的發展方向。

因此除了賣車之外,車企要做的更多,比如建立一個優秀的品牌文化,這也是難度不遜色於造出大賣產品的工程,寶馬費盡了力氣也沒能改變它在國內就是暴發戶用車的形象,而親民的幻速在品牌文化打造上顯然更加偏向於互動性質。

就拿這次的幻樂會周年慶典來說,來自全國各地的將近上百位的車主粉絲聚集在珠海,元旦當天車主們分成7隊,加上1隊媒體組的朋友們一起參加團隊挑戰項目,刺激的過山車、垂直極限等項目需要隊友們齊心協力完成,在經過了幾個小時的挑戰之後,車主們順利完成挑戰,贏得豐厚獎品;對於這些原本素未謀面的車主,通過一次有趣的幻樂會活動之後大家便成了好朋友,一起玩耍一起交流幻速帶來的歡樂。

而在活動晚宴上,廠家眾多大人物齊聚現場也是讓車主們驚訝,而北汽幻速也正式公布了幻樂會粉絲新名稱:“可樂”,譜寫了幻樂會的全新篇章。

北汽幻速擅長製造熱銷產品是大家有目共睹的,幻速品牌推出幾年的時間累計銷量直逼60萬,2015年12月31日幻樂會成立,短短的一年內幻樂會成為了國內十分少見的優秀官方車友會,而眾多企業高層出現在幻樂會也證明了幻樂會在幻速的地位。

縱觀國內車市,大家幾乎都沉浸在努力賣車的工作中,真的願意去花費這麼大的精力打造一個粉絲圈子,組織粉絲車友自駕/遊玩等活動的少之又少,而幻速就是其中一個,從長遠的角度看這樣的活動是十分有助於建立良好的品牌形象的,這也是十分利於企業發展的一個舉措,只有幻速這種高瞻遠矚的戰略眼光才能夠做出這樣的抉擇。因此有什麼不看好幻速的理由呢?本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司"嚨底家"!

※別再煩惱如何寫文案,掌握八大原則!

※產品缺大量曝光嗎?你需要的是一流包裝設計!

合資小型SUV中的銷量冠軍 顏值高油耗低車主們滿意嗎

28萬車主點評:外觀給人非常時尚前衛的感覺,圓潤飽滿緊湊感十足,配置上將將夠用吧,自動駐車和上坡輔助還是蠻好用的,然後就是令人驚訝的乘坐空間了,堪比一些緊湊級SUV了,家裡人對這車的空間都好評,1。8L的動力很足,隨叫隨到,加上CVT變速箱很平順,駕駛感受很舒服,就是懸挂有點硬。

前言

最近很多粉絲後台都有留言,其頻率最高的為15萬買什麼SUV好,的確這個價位是目前很多消費者所最能接受的價位,而且要求就是省油、耐用、空間大,那麼綜合考慮就只有本田家的繽智和XR-V了,雖然出自同一平台,但是XR-V的銷量一直要比繽智要好,那車主們當初為什麼選擇它呢!

東風本田-本田XR-V

指導價:12.78-16.28萬

車主:扳手小歐歐

購買車型:2015款 1.5L LXi CVT經典版

裸車價格:13.20萬

車主點評:一眼望去最滿意的首先是它的外觀,顏值比較高,看着很順眼,但進到裏面的內飾的塑料感就比較強了,而且配置比較低;但是日常代步很滿意的一點是它的油耗和動力,非常的省心,還有就是空間真的沒話說,坐上去感覺非常寬敞,比較完美的一輛家用車。

我是7月份提的車,目前行駛里程4500公里,市區油耗7.5L,高速油耗6L左右,用車成本相當低

車主:愛吃才會贏

購買車型:2015款 1.8L EXi CVT舒適版

裸車價格:14.28萬

車主點評:外觀給人非常時尚前衛的感覺,圓潤飽滿緊湊感十足,配置上將將夠用吧,自動駐車和上坡輔助還是蠻好用的,然後就是令人驚訝的乘坐空間了,堪比一些緊湊級SUV了,家裡人對這車的空間都好評,1.8L的動力很足,隨叫隨到,加上CVT變速箱很平順,駕駛感受很舒服,就是懸挂有點硬。

9月份提的車,現在4100公里,多數是市區開,油耗7L左右,還是很滿意的,我是開車比較溫柔的那種。

車主:我在東北玩泥沙

購買車型:2015款 1.8L VTi CVT豪華版

裸車價格:15.38萬

車主點評:對於XRV這輛車各方面都很滿意的,外觀很耐看,之所以上頂配,是為了發動機啟停、自動空調、無鑰匙啟動/進入、定速巡航等配置,空間上簡直就是無敵,1.8米的大胖子坐在後排也表示沒壓力,加速很線性,油門反應很靈敏,轉向也足夠精準,儲物空間夠豐富,日常使用很方便。

6月份提的車,跑了1萬公里了,平均油耗8L,表現還是相當不錯的,動力和油耗比較均衡。

總結:說起本田,除了發動機牛逼以外,還有就是它在空間處理上值得稱道了,乘坐空間非常寬敞,後排魔術座椅在空間擴展性上增加了不少分數,1.5L地球夢發動機動力強,油耗低,用車成本方面很有優勢。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

網頁設計最專業,超強功能平台可客製化

※產品缺大量曝光嗎?你需要的是一流包裝設計!

ASP.NET Core Blazor WebAssembly 之 .NET JavaScript互調

Blazor WebAssembly可以在瀏覽器上跑C#代碼,但是很多時候顯然還是需要跟JavaScript打交道。比如操作dom,當然跟angular、vue一樣不提倡直接操作dom;比如瀏覽器的後退導航。反之JavaScript也有可能需要調用C#代碼來實現一些功能,畢竟客戶的需求是千變萬化的,有的時候只能通過一些hack的手段來實現。

.NET調用JavaScript函數

使用JSRuntime.InvokeVoidAsync調用無返回值的JavaScript函數

顯然我們的.NET類庫里不會有JavaScript內置的alert方法來显示提示,這裏演示下如何調用JavaScript的alert方法:

<h3>.net call javascript</h3>

<button @onclick="CallJs">
    Call alert
</button>

@inject IJSRuntime jsRuntime
@code {
    private void CallJs()
    {
        jsRuntime.InvokeVoidAsync("alert", "this message from .net runtime .");
    }
}

使用JSRuntime.InvokeVoidAsync調用具有返回值的JavaScript函數

我們在JavaScript環境定義一個加法函數然後.NET這邊調用拿到結果:

    <script>
        function add(a, b) {
            return a + b;
        }
    </script>

注意:JavaScript代碼要放到wwwroot/index.html頁面上里,不能直接放在組件里。

組件代碼:

<h3>.net call javascript</h3>

sum: @sum

<button @onclick="CallJs">
    Call Add
</button>

@inject IJSRuntime jsRuntime
@code {

    private int sum = 0;

    private async void CallJs()
    {
        sum = await jsRuntime.InvokeAsync<int>("add", sum, 2);
        this.StateHasChanged();
    }
}

運行一下:

JavaScript調用.NET方法

JavaScript調用.NET靜態方法

JavaScript調用.NET靜態方法比較簡單,把靜態方法加上[JSInvokable],然後在JavaScript環境使用DotNet對象直接call就行:
定義.NET靜態方法:


    [JSInvokable]
    public static string GetNow()
    {
        return DateTime.Now.ToString();
    }

使用JavaScript調用GetNow:

  $(document).ready(
            setTimeout(() => {
                $('#btn1').on('click', function () {
                    DotNet.invokeMethodAsync('BlazorWasmComponent', 'GetNow')
                        .then(data => {
                            alert(data);
                        });
                })
            }, 10000)
        ); 

由於Blazor渲染UI結束后按鈕才會插入到dom樹上,所以這裏使用一個傻辦法讓綁定事件的JavaScript代碼置后運行。
運行一下:

JavaScript調用組件里的方法

JavaScript調用組件里的方法比較繞,其實還是通過一個靜態方法作為入口,把實例方法綁定一個靜態delegate,然後讓這個靜態方法去執行delegate。
.NET代碼:

<h3>javascript call .net</h3>

<button id="btn1">
   Js call .net
</button>

@inject IJSRuntime jsRuntime
@code {

    [JSInvokable]
    public static string GetNow()
    {
        return Act("");
    }

    public static Func<string, string> Act;

    protected override void OnInitialized()
    {
        Act = GetNowInInstance;
        base.OnInitialized();
    }

    public string GetNowInInstance(string str)
    {
        return DateTime.Now.ToString();
    }
}

JavaScript代碼:

 $(document).ready(
            setTimeout(() => {
                $('#btn1').on('click', function () {
                    DotNet.invokeMethodAsync('BlazorWasmComponent', 'GetNow')
                        .then(data => {
                            alert(data);
                        });
                })
            }, 10000)
        ); 

運行一下:

調用對象的方法

Blazor還可以把.NET對象(引用)直接傳遞到JavaScript運行時來讓JavaScript直接調用.NET對象的方法。

總的來說大概分4步:

  1. 實例化.net對象
  2. DotNetObjectReference.Create方法把.NET對象包裝
  3. 通過JSRuntime調用一個JavaScript方法把第二步生成的對象傳遞到JavaScript運行時
  4. 在JavaScript側通過invokeMethodAsync方法調用.NET對象里的方法

下面演示下把組件整個實例傳遞出去,然後調用裏面的GetNowInInstance方法。

.net代碼:

<h3>javascript call .net</h3>

<button id="btn1">
    Js call .net
</button>
@implements IDisposable
@inject IJSRuntime jsRuntime
@code {
    IDisposable _objRef;
    protected async override Task OnInitializedAsync()
    {
        _objRef = DotNetObjectReference.Create(this);
        await jsRuntime.InvokeAsync<string>(
            "receiveNetObj",
           _objRef);
        base.OnInitialized();
    }

    [JSInvokable]
    public string GetNowInInstance()
    {
        return DateTime.Now.ToString();
    }

    public void Dispose()
    {
        _objRef?.Dispose();
    }
}

注意:把.NET對象傳遞到JavaScript運行時存在內存泄漏的風險,所以組件需要實現IDisposable接口,在Dispose方法內調用objRef的Dispose方法來釋放內存。

JavaScript代碼:

        var _netObj = null;

        function receiveNetObj(obj) {
            _netObj = obj;
        }

        $(document).ready(
            setTimeout(() => {
                $('#btn1').on('click', function () {
                    _netObj.invokeMethodAsync("GetNowInInstance").then(
                        r => alert(r)
                    );
                })
            }, 10000)
        );

運行一下:

總結

使用JSRuntime可以在.NET里調用JavaScript的方法,這些方法必須是全局的,也就是掛載在window對象上的。
在JavaScript里調用.NET方法主要有兩種:

  1. 通過DotNet方式調用.NET的靜態方法
  2. 把.NET對象直接傳遞到JavaScript運行時來調用對象上的方法

相關內容

ASP.NET Core Blazor Webassembly 之 路由
ASP.NET Core Blazor Webassembly 之 數據綁定
ASP.NET Core Blazor Webassembly 之 組件
ASP.NET Core Blazor 初探之 Blazor WebAssembly
ASP.NET Core Blazor 初探之 Blazor Server

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

※推薦評價好的iphone維修中心

解Bug之路-記一次存儲故障的排查過程

解Bug之路-記一次存儲故障的排查過程

高可用真是一絲細節都不得馬虎。平時跑的好好的系統,在相應硬件出現故障時就會引發出潛在的Bug。偏偏這些故障在應用層的表現稀奇古怪,很難讓人聯想到是硬件出了問題,特別是偶發性出現的問題更難排查。今天,筆者就給大家帶來一個存儲偶發性故障的排查過程。

Bug現場

我們的積分應用由於量非常大,所以需要進行分庫分表,所以接入了我們的中間件。一直穩定運行,但應用最近確經常偶發連接建立不上的報錯。報錯如下:

GetConnectionTimeOutException

而筆者中間件這邊收到的確是:

NIOReactor - register err java.nio.channels.CloasedChannelException 

這樣的告警。整個Bug現場如下圖所示:

偶發性錯誤

之前出過類似register err這樣的零星報警,最後原因是安全掃描,並沒有對業務造成任何影響。而這一次,類似的報錯造成了業務的大量連接超時。由於封網,線上中間件和應用已經穩定在線上跑了一個多月,代碼層面沒有任何改動!突然出現的這個錯誤感覺是環境出現了某些問題。而且由於線上的應用和中間件都是集群,出問題時候都不是孤立的機器報錯,沒道理所有機器都正好有問題。如下圖所示:

開始排查是否網絡問題

遇到這種連接超時,筆者最自然的想法當然是網絡出了問題。於是找網工進行排查,
在監控裏面發現網絡一直很穩定。而且如果是網絡出現問題,同一網段的應用應該也都會報錯
才對。事實上只有對應的應用和中間件才報錯,其它的應用依舊穩穩噹噹。

又發生了兩次

就在筆者覺得這個偶發性問題可能不會再出現的時候,又開始抖了。而且是一個下午連抖了兩次。臉被打的啪啪的,算了算了,先重啟吧。重啟中間件后,以為能消停一會,沒想到半個小時之內又報了。看來今天不幹掉這個Bug是下不了班了!

開始排查日誌

事實上,筆者一開始就發現中間件有調用後端數據庫慢SQL的現象,由於比較偶發,所以將這個現象發給DBA之後就沒有繼續跟進,DBA也反饋SQL執行沒有任何異常。筆者開始認真分析日誌之後,發現一旦有 中間件的register err 必定會出現中間件調用後端數據庫的sql read timeout的報錯。
但這兩個報錯完全不是在一個線程裏面的,一個是處理前端的Reactor線程,一個是處理後端SQL的Worker線程,如下圖所示:

這兩個線程是互相獨立的,代碼中並沒有發現任何機制能讓這兩個線程互相影響。難道真是這些機器本身網絡出了問題?前端APP失敗,後端調用DB超時,怎麼看都像網絡的問題!

進一步進行排查

既然有DB(數據庫)超時,筆者就先看看調用哪個DB超時吧,畢竟後面有一堆DB。筆者突然發現,和之前的慢SQL一樣,都是調用第二個數據庫超時,而DBA那邊卻說SQL執行沒有任何異常,

筆者感覺明顯SQL執行有問題,只不過DBA是採樣而且將採樣耗時平均的,偶爾的幾筆耗時並不會在整體SQL的耗時裏面有所體現。

只能靠日誌分析了

既然找不到什麼頭緒,那麼只能從日誌入手,好好分析推理了。REACTOR線程和Worker線程同時報錯,但兩者並無特殊的關聯,說明可能是同一個原因引起的兩種不同現象。筆者在線上報錯日誌裏面進行細細搜索,發現在大量的

NIOReactor-1-RW register err java.nio.channels.CloasedChannelException

日誌中會摻雜着這個報錯:

NIOReactor-1-RW Socket Read timed out
	at XXXXXX . doCommit
	at XXXXXX Socket read timedout

這一看就發現了端倪,Reactor作為一個IO線程,怎麼會有數據庫調用呢?於是翻了翻源碼,原來,我們的中間件在處理commit/rollback這樣的操作時候還是在Reactor線程進行的!很明顯Reactor線程卡主是由於commit慢了!筆者立馬反應過來,而這個commit慢也正是導致了regsiter err以及客戶端無法創建連接的元兇。如下面所示:

由於app1的commit特別慢而卡住了reactor1線程,從而落在reactor1線程上的握手操作都會超時!如下圖所示:

為什麼之前的模擬宕機測試發現不了這一點

因為模擬宕機的時候,在事務開始的第一條SQL就會報錯,而執行SQL都是在Worker線程裏面,
所以並不會觸發reactor線程中commit超時這種現象,所以測試的時候就遺漏了這一點。

為什麼commit會變慢?

系統一直跑的好好的,為什麼突然commit就變慢了呢,而且筆者發現,這個commit變慢所關聯的DB正好也是出現慢SQL的那個DB。於是筆者立馬就去找了DBA,由於我們應用層和數據庫層都沒有commit時間的監控(因為一般都很快,很少出現慢的現象)。DBA在數據庫打的日誌裏面進行了統計,發現確實變慢了,而且變慢的時間和我們應用報錯的時間相符合!
順藤摸瓜,我們又聯繫了SA,發現其中和存儲相關的HBA卡有報錯!如下圖所示:

報錯時間都是一致的!

緊急修復方案

由於是HBA卡報錯了,屬於硬件故障,而硬件故障並不是很快就能進行修復的。所以DBA做了一次緊急的主從切換,進而避免這一問題。

一身冷汗

之前就有慢sql慢慢變多,而後突然數據庫存儲hba卡宕機導致業務不可用的情況。
而這一次到最後主從切換前為止,報錯越來越頻繁,感覺再過一段時間,HBA卡過段時間就完全不可用,重蹈之前的覆轍了!

中間件修復

我們在中間件層面將commit和rollback操作挪到Worker裏面。這樣,commit如果卡住就不再會引起創建連接失敗這種應用報錯了。

總結

由於軟件層面其實是比較信任硬件的,所以在硬件出問題時,就會產生很多詭異的現象,而且和硬件最終的原因在表面上完全產生不了關聯。只有通過抽絲剝繭,慢慢的去探尋現象的本質才會解決最終的問題。要做到高可用真的是要小心評估各種細節,才能讓系統更加健壯!

公眾號

關注筆者公眾號,獲取更多乾貨文章:

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案