簡體   English   中英

如何通過ajax從SPA獲取完整的html?

[英]How to get full html from SPA by ajax?

我正在嘗試在AngularJS中完成SPA生成的完整html。

            $.get('http://localhost:3388/' + d.response.path, function (d) {
                $('#templateContainer').html(d);
            });

但它只重新調整了基本的html結構,而不是由AJAX生成的動態html(我想知道這是否是SPA對SEO不利的原因)。

我相信可能存在一些解決這個問題的技巧/技巧。 例如,當您檢查元素時,它可以從AJAX渲染所有html。

也許我沒有在谷歌上使用正確的關鍵字。 人們一直在做什么來解決這個問題?

更新

只是為了清楚我的情況。 我正在嘗試從此SPA獲取完整的html,以向用戶顯示模板預覽。

我有許多不同的SPA與不同的模板。 我想通過AJAX而不是IFRAME顯示這些實時模板。 IFRAME可以工作但不是很好。

您可以在SPA中生成整頁,但這不是您在這種情況下不應使用SPA的目標。

因為SPA的目標是只獲取頁面的某些部分並在必要時加載它們,所以如果你關心像prerender.io這樣的搜索引擎優化工具,你應該嘗試一個中間件,你可以用它創建自己的服務器或者使用它們的服務開源。

但是在SPA中生成一個完整頁面會導致您使用SPA的所有原因。 最好的祝福 :)

您將獲得原始html,因為服務器無法呈現您的應用程序,這是預期的行為,沒有錯誤。

SPA通常是ClientSide應用程序,這意味着瀏覽器必須在rountime上呈現AngularApp!

當然瀏覽器沒有呈現任何東西,因為你的代碼被異步注入到dom中,因此,你需要手動編程AngularJS bootstrapping而不是通過ng-app指令。

順便說一句,有很多方法可以對你的應用程序進行服務器端渲染,請查看https://prerender.io/ ...

如果你的目標是一個很好的索引 ...通過jQuery加載應用程序是一個糟糕的解決方案,因為搜索引擎爬蟲無法處理javascript,這不是一個角度特定的問題,每個javascript內置的應用程序都有這個問題。

最好的解決方案應該是一個完整的角度應用程序,並且只有爬蟲才能實現服務器端預渲染(使用prerender.io)。

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM