屬性選項標籤我遇到一個問題,Magento的系統中,節省了大量的屬性,要麼完全不工作,或僅部分工程的大的多。它似乎是一個javascript相關的問題,我希望Stack Overflow上的某些人有處理這種情況的「已知科學」,或者可以指出我的方向是正確的。節能問題在Magento
的基本問題是,Magento的系統問題,有超過250色屬性選項標籤。如果管理員用戶嘗試通過執行以下操作
- 導航到目錄來管理這些 - >屬性 - >管理屬性
- 選擇顏色屬性
- 點擊管理標籤/選項標籤
- 編輯最後一個標籤選項
- 點擊「保存並繼續編輯」
兩種情況之一發生。
在谷歌瀏覽器的OS X,在「鬱悶」狀態的按鈕條,並在一段時間的谷歌Chrome瀏覽器後,「此頁無響應」殺對話框出現。
在OS X上的Mozilla的基於瀏覽器,點擊按鈕可以使瀏覽器的「思考」了一下,但最終提交表單。 但是,只有屬性標籤的部分列表被髮布到管理控制器。這意味着用戶只能編輯前75-100個標籤,因爲其他標籤從不提交。
我從windows用戶描述第二行爲,以及報告(瀏覽器爲非特異性)
最明顯的答案是要麼調查業績不佳的JavaScript或(格勞奇馬克思樣式)「不做那」。在我花時間分析/挖掘該頁面上的JavaScript之前,我希望有一些已知的修復方法或具體的知識來解決導致問題的原因。
Magento的CE 1.7.x,如果它事宜中。
更新: JavaScript的性能問題是一個紅鯡魚。他們通過輸入字段的數量龐大導致正在通過迭代在
js/prototype/validation.js
特別是在這個try catch塊
try {
if(this.options.stopOnFirst) {
result = Form.getElements(this.form).all(function(elm) {
if (elm.hasClassName('local-validation') && !this.isElementInForm(elm, this.form)) {
return true;
}
return Validation.validate(elm,{useTitle : useTitles, onElementValidate : callback});
}, this);
} else {
result = Form.getElements(this.form).collect(function(elm) {
if (elm.hasClassName('local-validation') && !this.isElementInForm(elm, this.form)) {
return true;
}
return Validation.validate(elm,{useTitle : useTitles, onElementValidate : callback});
}, this).all();
}
} catch (e) {
}
然而,即使我的短路這一點,並有函數返回true,不保存所有標籤的行爲仍然存在。
看起來像這是問題。如果我扁平化POST數組並計算它,它恰好有1000個元素。未來的人也應該閱讀這個錯誤報告,因爲max_input_vars的文檔稍微不準確。 https://bugs.php.net/bug.php?id=62921&edit=1 –
這也解決了我的問題(與Alan Storm的問題相同)。 max_input_vars已經被設置爲1000,但是沒有使用我的380屬性值。當設置爲3000時,按鈕仍然按下,但值保存正確。 –