2016-04-15 41 views
1

當基於amp:access隱藏和顯示AMP中的元素時,似乎有些閃爍是不可避免的。除了佔位符之外,還有其他方法可以使這一點變得更好嗎?在請求返回之前,實際上隱藏整個身體是否有意義?使用amp:access時有減少閃爍的策略嗎?

+0

也許你錯過了你的配置。基於此[文檔](https://www.ampproject.org/docs/reference/extended/amp-access.html),'amp-access'屬性提供了基於授權響應產生真或假的表達式由授權端點返回。 'amp-access'值是一個用類似SQL的語言定義的布爾表達式。請檢查您遇到的[錯誤](https://www.ampproject.org/docs/reference/extended/amp-access.html#appendix-a-amp-access-expression-grammar)。 – abielita

+0

查看URL會很有幫助。對我而言,很難在看不到代碼的情況下對可能發生的情況進行成像。 –

+0

請參閱此URL。 http://kushaldave.com/ampadbug.html行爲是正確的,它只是延遲,可以理解,因爲它依賴於RPC,導致閃爍。 –

回答

4

完全隱藏身體將非常不理想,因爲授權響應的延遲可能會有很大差異。而是建議儘可能多地顯示,並且只在授權響應返回時才隱藏。所以,你是對的,保持不變是最好的策略。

實際上,閃爍效果也可以通過以下方式變得更加柔和: 1.預渲染。使用AMP的主​​要應用(例如Google搜索)會預先呈現文章,並因此提前執行授權響應 - 這可能會在用戶真正閱讀內容之前進行。這不在頁面作者的控制之中,而是要牢記在心。 2.授權響應可以被緩存,特別是用戶。這將導致更早的評估。

另一件可能對未來有幫助的事情 - AMP正在考慮添加一個amp-access-hide=elide選項。您可以通過https://github.com/ampproject/amphtml/issues/2967進行追蹤。其背後的想法是在受限時顯示模糊(不可讀)的內容。這會減少閃爍,因爲它只是消除模糊,而不是顯示整個部分。這仍然是一個正在討論的項目。

此外,AMP可能會在顯示內容之前等待非常有限的時間,希望授權響應能夠快速到達(可隨意在GitHub上提交錯誤),但它會非常有限。

+0

Google是否總是預取授權端點?文件似乎暗示這是即將到來,但不是真的。 –

+0

@KushalDave是的,在文檔仍處於預渲染模式時,通常會盡快提取授權端點。 –